Wes Brown and Nani also scored at Old Trafford for Man United, which leads the standings with 73 points. Liverpool, which played the entire second half a man down after Javier Mascherano was sent off for two yellow cards, stayed in fourth place with 59 points.
Chelsea's match against Arsenal later Sunday will also shape the title race. The Gunners will need to end Chelsea's 78-game unbeaten league streak at its Stamford Bridge home or risk being overtaken by the Blues in the standings.
Before the match, Arsenal had 67 points, and Chelsea 65.
In a nervy opening first half, Wayne Rooney and Ronaldo had chances before the Red Devils went ahead.
Liverpool goalkeeper Pepe Reina almost palmed the ball into his own goal in the 33rd minute and fumbled again a minute later to allow United to take the lead.
Rushing out to punch away a cross from Rooney, Reina was beaten to the ball by Brown, who headed it over the line.
It got worse for Liverpool in the 44th minute when Mascherano was sent off for a second yellow card, for arguing with referee Steve Bennett over a foul by United defender Rio Ferdinand on Liverpool forward Fernando Torres. Just beforehand, Torres had been booked for dissent.
A clearly angry Mascherano initially refused to leave, with members of the Liverpool coaching staff attempting to calm him down before manager Rafa Benitez eventually persuaded him off the field.
Mascherano was shown his first yellow in the 10th minute for a foul on Paul Scholes.
Ronaldo scored his 25th Premier League goal in the 79th, just moments after Reina pushed another of his attempts on to the crossbar. The Portugal winger headed in his goal from a corner by Nani.
United made it 3-0 in the 81st through Nani, who played a one-two with Rooney before shooting into the corner.
Liverpool has yet to beat United in the league under Benitez and has lost its last three games against the Red Devils. It last won at Old Trafford in April 2004.
On Saturday, Newcastle won for the first time since Kevin Keegan returned as manager, defeating visiting Fulham 2-0 behind goals by Mark Viduka and Michael Owen and ending a nine-match winless streak.
Also Saturday in cold, wet, windy and often snowy conditions, it was: Tottenham 2, Portsmouth 0; Blackburn 3, Wigan 1; Aston Villa 0, Sunderland 1; Bolton 0, Manchester City 0; Middlesbrough 1, Derby 0; and Reading 2, Birmingham 1; and Everton 1, West Ham 1.