Ribas Diego headed home an equaliser for Brazil in the dying seconds to rob England of a morale-boosting victory on their return to Wembley.
Diego's late goal spoiled England's Wembley return
David Beckham created England's opener, sending over a free-kick for captain John Terry to power a header past Brazil keeper Helton after 68 minutes.
England then looked set to go into the crucial Euro 2008 qualifier against Estonia with confidence high.
But Diego rose high in injury-time to head home Gilberto Silva's cross.
Beckham's return inevitably claimed most of the attention, and he was involved in most of England's attacking moves in a low-key first half.
Brazil were the more fluent side and were unlucky not to be ahead after 19 minutes when Gilberto Silva's header was ruled out for offside, a decision replays suggested was incorrect.
Beckham almost stole the show after 29 minutes when he curled a trademark free-kick inches wide after Mineiro had fouled the excellent Steven Gerrard.
England keeper Paul Robinson produced a fine save after 49 minutes to keep them on terms, turning over after Ronaldinho's shot took a deflection off Ledley King.
Beckham's dead-ball expertise was adding a much-need threat to England's game, and his free-kick almost brought a goal for Owen after 56 minutes, but his header landed on top of the net.
England coach McClaren made a double change after 61 minutes, sending on Kieron Dyer and Stewart Downing for Joe Cole and Alan Smith.
And the Middlesbrough winger almost had an instant impact, forcing Helton to tip over a rising 25-yard drive.
John Terry celebrates after putting England ahead against Brazil
England went ahead after 68 minutes, and Beckham was the creator.
He sent another dangerous free-kick to the far post, and Terry rose above the giant Naldo to power a header past Helton.
It was Terry's final contribution, as he limped off as a precaution with a hamstring strain to be replaced by Wes Brown.
Brown was virtually still running on to the Wembley turf when he slipped and almost allowed Brazil substitute Afonso Alves for an equaliser, but his shot slid just wide.
Beckham was replaced to rapturous applause with 15 minutes to go having made a creditable return to the international stage.
Afonso then headed narrowly over from Naldo's headed flick as Brazil, who had been strangely subdued after the break, finally threatened.
But as England looked to be heading for victory, substitute Diego stole in to head Gilberto Silva's cross past Robinson.
England: Robinson, Carragher, King, Terry (Brown 72), Shorey, Beckham (Jenas 77), Gerrard, Lampard (Carrick 88), Cole (Downing 62), Smith (Dyer 62), Owen (Crouch 83).
Subs Not Used: Carson, Bridge, Neville, Bentley, Green, Defoe.
Goals: Terry 68.
Brazil: Helton, Daniel (Maicon 65), Naldo, Juan, Gilberto, Ronaldinho, Mineiro (Edmilson 63), Gilberto Silva, Kaka (Alves 71), Robinho (Diego 74), Vagner Love.
Subs Not Used: Doni, Alex Silva, Alex, Marcelo, Josue, Elano, Jo.
Goals: Diego 90.
Ref: Markus Merk (Germany).