A Wayne Rooney goal cancelled out the Liverpool star's first half effort but the striker popped up late in the game to nick the win for his side.
Luis Suarez returned from injury to score twice as Uruguay beat England 2-1 to breathe new life into their FIFA World Cup campaign.
Uruguay were shocked by a 3-1 loss to Costa Rica in their opening Group D fixture last Saturday, but Suarez - who was absent for that game - proved the difference in Sao Paulo on this occasion.
The fitness of the Liverpool star dominated the pre-match headlines but, as expected, he was included from the start just four weeks after undergoing minor knee surgery.
He marked his first appearance of this World Cup with a double, nodding in a superb Edinson Cavani cross six minutes before halftime to give Uruguay the lead.
Wayne Rooney missed two glorious chances for England in the first half, first heading into the bar from one yard while scores were level before shooting straight at Uruguay goalkeeper Fernando Muslera early in the second period.
But he made amends as he tapped in Glen Johnson's smart ball across the face of goal with 15 minutes left to equalize and set up a grandstand finish.
Suarez had the final say, though, pouncing on Muslera's long ball - which flicked the head of England captain Steven Gerrard - and firing past Joe Hart with just five minutes left to all but end England's chances of reaching the last 16.
Uruguay will now head into Tuesday's clash against Italy in a buoyant mood, while England, beaten in both Group D matches, needs a minor miracle to qualify.
Uruguay coach Oscar Tabarez threatened to ring the changes after the Costa Rica match and he was true to his word, making five alterations, as captain Diego Lugano (knee) and defender Maxi Pereira (suspended) were not the only casualties.
In stark contrast, England was unchanged, and Roy Hodgson's faith was nearly rewarded when Rooney - the target of much criticism following the 2-1 defeat to Italy - curled a 20-yard free kick just wide with Muslera rooted to the spot.
Phil Jagielka's mishit clearance allowed Cristian Rodriguez in at the other end, but his fiercely hit left-foot effort sailed inches over the crossbar in the 15th minute.
Diego Godin was then perhaps lucky to stay on the pitch, as the defender, given a yellow card for a handball that led to Rooney's early free kick, caught Daniel Sturridge by the throat with his forearm, but avoided further punishment.
England should have taken the lead in the 31st minute but Rooney, who rose above Martin Caceres, inexplicably headed into the bar from one yard from a Gerrard free kick, and the Three Lions were soon made to pay for their profligacy.
Nicolas Lodeiro instigated the opener, beating Gerrard in midfield, and he fed Cavani, who, from the left, produced an inch-perfect cross that looped over Jagielka and onto Suarez's head, with the striker nodding across Hart and in from eight yards.
Sturridge nearly produced a quick response for England but the team had to weather a storm after the break as Uruguay upped the pressure.
Suarez caught Hart napping as he shot from a corner, with the goalkeeper having to scramble back to keep it out, and he also fired wide after England was caught out at the back.
Cavani then wasted a fine chance to double Uruguay's lead, shooting wide when one-on-one with Hart before Rooney could only shoot at Muslera when played in at the other end.
Rooney finally opened his World Cup account in the 75th minute as Johnson, who cut in from the right and beat Alvaro Gonzalez, saw the Manchester United man steal in front of Caceres and shoot past Muslera.
England's celebrations were cut short, though, as Muslera's hopeful punt forward saw Suarez pounce on Gerrard's inadvertent flick on, the striker keeping his cool to slam the winner past Hart.