Wayne Rooney — who netted his 33rd for his country, and Frank Lampard were England’s scorers, either side of a fine equaliser from Fred at the start of the second half.
However, there were far more plusses for manager Roy Hodgson than a first victory over Brazil since 1990.
Jack Wilshere was outstanding alongside Steven Gerrard in midfield, and the Arsenal midfielder was deservedly named man of the match, Joe Hart saved a penalty and Theo Walcott’s pace was a constant threat until he was replaced by Aaron Lennon near the end.
Indeed, but for a few defensive jitters immediately after the restart, England were comfortably the better side and little wonder Roy Hodgson cut a delighted figure at the final whistle.
“It’s my first crack at Brazil as a manager and I’m delighted to have been able to oversee a victory.
“It was an all-round performance from the team, there were some very, very good moments and I thought we were good value for two goals to one.”
Wilshere and Walcott, whose shot was parried into Rooney’s path for the opener, earned special praise from their coach.
Hodgson admitted he had tried to shield Wilshere from pre-match hype but said: “If he can keep up that level of performance he will soon justify all the expectations and hopes because he was very, very good.
“As was Theo Walcott, he terrorised the left side of their defence.’’
And veteran midfielder Lampard, who scored for the 27th time for England was similarly lavish in his praise for Wilshere.
“He is a fantastic player. He’s got quality on the ball, technical ability and the speed to get away from people. He’s going to be a massive player for England — and in the world.”
Looking ahead to England’s World Cup qualifying campaign, Lampard added: “The important thing is the group matches. We’ve got to get to Brazil.”
ENGLAND: Hart, Johnson, Cole (Baines 46), Cahill, Smalling, Gerrard, Walcott (Lennon 75), Wilshere, Cleverley (Lampard 46), Welbeck (Milner 61), Rooney.
BRAZIL: Julio Cesar, Alves, David Luiz (Miranda 78) Dante, Adriano Correia (Filipe 69), Ramires (Arouca 46), Oscar, Paulinho (Jean 62), Ronaldinho (da Silva Lucas 46), Luis Fabiano (Fred 46), Neymar.
Referee: P Proenca (Portugal)