Things seemed to be going United’s way when Marouane Fellaini bagged his first Old Trafford goal in a red shirt with a towering header at the back post.
But Stoke hit back when Steven Nzonzi rifled home his stinging drive into the far corner for his first Premier League goal of the season and his first goal anywhere since March to make it 1-1 at the break.
There was some debate about who scored the winning goal as Juan Mata’s free-kick looked to go straight through a crowd of players although Marcos Rojo claimed that he got the all-important touch.
Then, in a nerve-jangling finish David de Gea made a stunning save to deny Mame Biram Diouf and then Ashley Young came to United’s rescue with a sensational goal line clearance in the fourth minute of stoppage time as the hosts held on to move to within a point of third-placed Southampton.
It was not until United were gifted an opportunity after 17 minutes that they came to life, as Stoke goalkeeper Asmir Begovic passed to Robin van Persie.
The Dutchman powered into the box and pulled back to Herrera but the Spaniard was too hasty and shot over.
Ander Herrera quickly made amends for that miss as four minutes later he collected a pass from Mata and lofted a dangerous cross for Fellaini at the back post.
Erik Pieters failed to pick up the Belgian, who timed his leap superbly to head past a helpless Begovic.
United also had a good appeal for a penalty turned down as James Wilson – starting in place of the injured Wayne Rooney – appeared to be kicked by Geoff Cameron but referee Jon Moss gave nothing.
Stoke tried to respond and Pieters whipped in a good ball from the left looking for Stephen Ireland or Bojan Krkic, but Rojo intervened.
It was clear Stoke were not prepared to surrender in the manner Hull did at the same ground on Saturday and they pulled back level before the break.
Controversy arose as Fellaini went down clutching his neck as Assaidi won a 50-50 ball.
Assaidi may have caught the United midfielder on the hand or top of the thigh in the challenge but not his neck, as the Belgian appeared to claim.
Whatever occurred, Moss saw nothing untoward and both sides played on.
Bojan ran at the heart of the United defence and was crowded out as he reached the edge of the area. United failed to clear, however, and the ball ran into the path of Nzonzi, who lashed home a fierce shot from just inside the ‘D’.
Fellaini continued to hold his neck but it did not seem to be affecting him just before half-time as he went close to restoring United’s lead.
United won a free-kick outside the box on the right and a shot from Van Persie took a deflection and found its way to the Belgian in front of goal. This time he scuffed a shot and Begovic saved at the second attempt.
Stoke, who lost Steve Sidwell and Glenn Whelan to injury at the weekend, had another scare early in the second half when Pieters needed lengthy treatment after a clash with Van Persie.
That incident occurred during a scrappy spell but United reclaimed the lead just before hour as Mata floated in a free-kick from the right. The ball appeared to dip over everyone in the area and bounce in at the far post, although Rojo claimed to have got a touch.
Wilson, the 19-year-old who scored twice on his debut last season, almost scored a third for United after a good run from just inside the Stoke half but he clipped his shot just wide.
Wilson made another charge but was crudely hacked down by Ireland, who was booked. Another good break led to a chance for Fellaini but he blasted wide.
United were almost made to pay for those misses in a breathless four minutes of injury time.
But De Gea, who had had a quiet game, remained alert to the last as he kept out a Diouf header and a powerful Marko Arnautovic strike.
The latter seemed to no avail as the ball rolled along the line to Diouf, but Young dramatically hacked clear from under the crossbar.
SOCCER SPECIAL ANALYSIS – PAUL MERSON
That’s four wins on the trot and it’s been a year since United have done that. They had to ride their luck at the end. De Gea made two unbelievable saves in the last two minutes, and Ashley Young cleared the ball off the line, when it was three-quarters of the way over the line. Bar that I thought United played well, if they didn’t pepper the goal.
They closed Stoke down and with Wayne Rooney and Angel di Maria in the team they would have been better. It’s another win. You’ve got to keep on winning – that’s what this game is all about. Stoke will feel hard done by at the end, they threw the kitchen sink at them.
Man Utd: De Gea (7) Valencia (7) Smalling (6) Rojo (6) Young (7) Carrick (6) Fellaini (7) Mata (6) Herrera (7) Van Persie (5) Wilson (7).
Subs: Falcao (5) Januzaj (4) Fletcher (4).
Stoke City: Begovic (6) Bardsley (6) Shawcross (6) Wilson (6) Pieters (6) Cameron (6) Nzonzi (7) Bojan (7) Ireland (6) Assaidi (6) Diouf (7).
Subs: Arnautovic (5) Crouch (5).
Man of the Match: Marouane Fellaini