Carlos Tevez poached a late winner to boost Manchester United's title chances and deny ten-man Stoke City what would have been a deserved point.
The Argentinian made no mistake from six yards in the 83rd minute - ten minutes after City defender Andy Wilkinson had been sent off for a second yellow card.
United suffered a blow when Rio Ferdinand was forced to pull out after the pre-match warm-up with Jonny Evans stepping in to take his place.
And Stoke almost got off to a sensational start with Ricardo Fuller squandering an outstanding opportunity after just 50 seconds.
Richard Cresswell's mis-hit shot ballooned into the air and, as the United rearguard hesitated, Fuller ran clear before slicing his effort over the top.
Stoke were being willed on by their fervent supporters and it needed a fine tackle from Paul Scholes to deny Fuller another clear strike on goal in the tenth minute.
It was once again Fuller who was causing problems minutes later when Edwin van der Sar raced from his goal to deny him after the Jamaica international had fastened onto a super pass from Rory Delap.
The sight of Delap, who had suffered shoulder problems, delivering his long throw-ins was another sign of encouragement for the home fans, who were raising the roof at a packed Britannia Stadium.
United finally landed a blow on Stoke's goal in the 25th minute when Wayne Rooney headed Gary Neville's cross straight into the clutches of Thomas Sorensen.
There were three bookings in rapid succession, Cresswell and Wilkinson for Stoke and Evans for United, as a full-blooded contest continued to boil.
United gradually began to see more of the ball in the final stages of the first half and Rooney fizzed one cross dangerously along City's six-yard box, before attempting to curl home a shot which was deflected away for a corner.
The visitors upped the ante at the start of the second half as Sorensen saved Tevez's effort and then produced a magnificent effort to deny Scholes.
Scholes had time to look up and pick his spot from 25 yards, but Sorensen took off at full stretch to tip the ball around the post.
But Stoke were in no mood to be forced back and van der Sar made a similar save to deny Fuller just seconds later before Danny Pugh headed a Delap throw narrowly over.
Sir Alex Ferguson brought on Dimitar Berbatov for John O'Shea in an attempt to force the pace, but Stoke continued to look the most likely winners until Wilkinson was sent off.
Already booked for a foul on Ryan Giggs in the first half, the young defender's inexperience showed as he hacked at Cristiano Ronaldo's ankles.
There was still no real sign of United breaking down the Stoke defence until the all-important goal arrived seven minutes from time.
Berbatov's excellent first touch created room for a shot and, although he miscued his effort, Tevez steamed in to ram the loose ball into the roof of the net.