Spurs’ winning run was brought to an abrupt halt by a 1-0 home defeat by Brighton, while the Gunners were beaten 1-0 at Southampton to slump to a third consecutive loss.
Ronaldo’s 50th club hat-trick tempered a revolt among the fanbase at Old Trafford as United move above Arsenal into fifth on goal difference, three points behind Tottenham.
There was unrest among the United fans before the game even began as many did not come into the stadium until the 17th minute to protest against the 17 years of the Glazer family’s ownership of the club.
Those late to take their seats missed Ronaldo’s first goal of the afternoon as he swept home Anthony Elanga’s cross.
The 37-year-old then powered home Alex Telles’ corner for his 20th goal of the season despite United’s struggles.
However, the Red Devils’ defensive problems were laid bare by the bottom-of-the-table Canaries who had scored just 20 goals in their previous 31 league games.
Kieran Dowell halved the arrears in first-half stoppage time before Teemu Pukki levelled seven minutes into the second half.
David de Gea then had to produce a brilliant save to deny Pukki completing the comeback.
United players were then met with chants of “you’re not fit to wear the shirt”, with Paul Pogba singled out for abuse when he was substituted.
But Ronaldo had the final say when his free-kick flew through the grasp of Tim Krul 14 minutes from time to set up a huge week for United.
Ralf Rangnick’s men face a daunting trip to Liverpool on Tuesday before facing Arsenal next weekend.
“Ronaldo has scored three very important goals for us,” said De Gea.
“We know we aren’t playing very well but we got three points. We should control the game more against Norwich at home.”
– North London nightmare –
Brighton halted Tottenham’s charge towards the Champions League as Leandro Trossard struck a 90th-minute winner.
But Antonio Conte’s men were bailed out by another defeat for Arsenal as they failed to close the gap against a Southampton side that had been thrashed 6-0 by Chelsea last weekend.
Brighton were Arsenal’s conquerors last time out to snap a seven-game winless run.
With confidence restored, the Seagulls looked more like their old selves under Graham Potter as they controlled the game and completed a north London double thanks to Trossard’s composed finish in the final minute.
“Today we did everything too slow,” said Conte. “It was not a good game for us.
“When you can’t win, you should not lose and that is a lesson for us today. When it is not your day, you have to pay more attention and not lose.”
Arsenal’s lack of a top striker proved their downfall at St. Mary’s as Fraser Forster produced a string of fine saves to leave Mikel Arteta’s men frustrated.
Southampton took their chance when it came as defender Jan Bednarek swept high past Aaron Ramsdale just before half-time.
“We had so much possession, we created situations but the end product was not good,” said Arteta.
“You have to score goals to win games. What else can I say? The boys played the way they have to play but in the box is where things are defined.”
At the bottom of the table, Watford look set to return to the Championship after Brentford inflicted their 10th successive home league defeat.
Pontus Jansson scored the winner deep into stoppage time for the Bees after Emmanuel Dennis had cancelled out Christian Norgaard’s opener.
Second-from-bottom Watford remain six points adrift of safety with six games left to play.