Manchester United re-established a five-point lead over Manchester City at the top of the Premier League but their victory over Aston Villa was aided by another controversial penalty.
Ashley Young, who won a spot-kick last week against QPR, was involved again, adjudged to be tripped by Ciaran Clark.
Contact between the pair was minimal but Wayne Rooney converted before Danny Welbeck made it 2-0 at the back post.
Villa improved after the break but Rooney and Nani sealed victory.
United were the superior team, especially in the first half, and the win also cut Manchester City's goal difference advantage to four goals.
Young went down quite easily - Ferguson
But questions will be asked of Young, after Clark appeared to pull his foot away from the winger.
Young's former team-mates failed to improve a wretched record against United, which now extends to one win in 31 games.
More importantly, they remain just six points above the relegation zone but they will look at games against Sunderland, Bolton and West Brom as a better chance of accruing points than a trip to Old Trafford.
Recent penalty controversies
Manchester United 2-0 QPR - 8 April - Ashley Young tumbles under a challenge from Shaun Derry, who is sent off
Doncaster 3-4 Portsmouth - 14 April - Doncaster's Habib Beye is sent off after Dave Kitson's fall. Defeat sees Rovers relegated to League One
- Hearts 2-1 Celtic - 15 April - Celtic's Joe Ledley blocks a Hearts shot in stoppage time, with Craig Beattie's penalty the winner
Fulham 1-1 Chelsea - 9 April - Referee Mark Clattenburg awards a penalty for a foul by Danny Murphy on Salomon Kalou
Tottenham 3-1 Stevenage - 7 March - Mark Roberts penalised for a foul on Gareth Bale, although replays suggest minimal contact
For United, victory was a perfect response after losing at Wigan on Wednesday and they were not put under any sustained pressure, hard as Villa fought.
Before the spot-kick controversy, Andreas Weimann had tested David de Gea and Clark almost made amends for his transgression later in the half when his header whistled wide.
Stephen Ireland's curling shot also went close, but United were well on top and could have extended their lead through efforts by Welbeck, Rooney and Paul Scholes.
McLeish unhappy with penalty decision
Visiting keeper Shay Given had to be on top form to tip one Welbeck shot over, and he was severely let down by his defence for United's second.
Patrice Evra overlapped on the left and although his low cross was delivered into a dangerous area, it was well within the reach of James Collins and Nathan Baker, who inexplicably chose to leave it allowing Welbeck to slide in at the back post.
Scholes was once again the dictator in midfield, having being left out of the defeat by Wigan.
But the 37-year-old was booked for an ugly tackle on Gabriel Agbonlahor early in the second half, as Villa attempted to impose themselves on the game.
They had some success in stemming the flow towards their goal and Emile Heskey, who replaced the injured Clark, had a header tipped over by De Gea, while Nathan Baker also headed inches wide from a corner.
McLeish may take a dim view of the first goal, but Villa can have few complaints about the result - if there were any doubts about the direction of the game, Rooney made sure when he tucked in Antonio Valencia's cutback for his 32nd goal of the season.
And Nani came on to boost United's goal total when he scored from close range.
Sir Alex Ferguson's team now host Everton before they travel to Etihad Stadium to face City, where - following this result - victory could secure them their 20th top-flight title.
Full Time The referee signals the end of the game.
Effort on goal by Tom Cleverley from just outside the area goes harmlessly over the target.
The assist for the goal came from Jonathan Evans.
90:00 +2:27 Goal scored
Goal - Luis Nani - Man Utd 4 - 0 A Villa Luis Nani scores a goal from deep inside the penalty box to the bottom left corner of the goal. Man Utd 4-0 Aston Villa.
Luis Nani produces a cross, Nathan Baker makes a clearance.
Direct free kick taken by James Collins.
90:00 +1:17 Booking
Booking Luis Nani receives a caution for unsporting behaviour.
Alan Hutton fouled by Luis Nani, the ref awards a free kick.
Free kick taken by Rio Ferdinand.
90:00 +0:51 Booking
Booking Caution for Barry Bannan.
Barry Bannan gives away a free kick for an unfair challenge on Michael Carrick.
Patrice Evra crosses the ball, Dimitar Berbatov takes a shot. Eric Lichaj gets a block in. Corner taken by Luis Nani, Close range headed effort by Jonathan Evans misses to the right of the goal.
Barry Bannan takes the outswinging corner, Unfair challenge on Dimitar Berbatov by Nathan Baker results in a free kick. Direct free kick taken by David De Gea.
Corner taken left-footed by Barry Bannan, Headed effort from inside the area by James Collins misses to the left of the target.
Substitution Charles N'Zogbia comes on in place of Andreas Weimann.
Drilled right-footed shot by Antonio Valencia. Blocked by Eric Lichaj. Antonio Valencia decides to take a short corner.
Antonio Valencia takes a shot. Barry Bannan gets a block in. Antonio Valencia takes a outswinging corner to the near post.
Danny Welbeck takes a shot. Save made by Shay Given. Short corner taken by Luis Nani.
The ball is swung over by Luis Nani, Samir Carruthers gets a block in. Antonio Valencia decides to take the corner short.
Substitution Paul Scholes goes off and Tom Cleverley comes on.
Free kick awarded for a foul by Michael Carrick on Samir Carruthers. Gary Gardner has a direct shot on goal from the free kick.
Substitution (Aston Villa) makes a substitution, with Samir Carruthers coming on for Stephen Ireland.
Substitution Dimitar Berbatov comes on in place of Wayne Rooney.
A cross is delivered by Antonio Valencia,
The assist for the goal came from Antonio Valencia.
72:58 Goal scored
Goal - Wayne Rooney - Man Utd 3 - 0 A Villa Wayne Rooney finds the back of the net with a goal from deep inside the penalty box to the bottom left corner of the goal. Man Utd 3-0 Aston Villa.
Gabriel Agbonlahor takes a shot. Antonio Valencia gets a block in. Corner taken left-footed by Barry Bannan from the right by-line, Close range header by Nathan Baker misses to the right of the target.
The ball is crossed by Alan Hutton.
Barry Bannan produces a cross.
Antonio Valencia crosses the ball, Wayne Rooney produces a right-footed shot from deep inside the penalty box which goes wide of the left-hand upright.
Handball by Andreas Weimann. Rio Ferdinand restarts play with the free kick.
Emile Heskey takes a shot. Save by David De Gea. Barry Bannan takes a inswinging corner to the near post, clearance made by Danny Welbeck.
The assistant referee flags for offside against Antonio Valencia. Shay Given takes the indirect free kick.
Corner taken by Antonio Valencia played to the near post.
Substitution Emile Heskey on for Ciaran Clark.
Antonio Valencia takes a shot. Blocked by James Collins. Paul Scholes takes a shot. Stephen Ireland gets a block in.
The ball is sent over by Luis Nani, blocked by Barry Bannan.
Substitution Luis Nani is brought on as a substitute for Ashley Young.
Effort on goal by Barry Bannan from long range goes harmlessly over the bar.
Barry Bannan sends in a cross.
Free kick taken by Rio Ferdinand.
Booking Booking for Alan Hutton for unsporting behaviour.
Free kick awarded for a foul by Alan Hutton on Ashley Young.
Unfair challenge on Gabriel Agbonlahor by Paul Scholes results in a free kick. James Collins restarts play with the free kick.
Booking The referee shows Paul Scholes a yellow card.
The referee starts the second half.
45:00 +1:08 Half time
Half Time It is the end of the first-half.
Gabriel Agbonlahor concedes a free kick for a foul on Jonathan Evans. Rio Ferdinand takes the direct free kick.
Assist by Patrice Evra.
42:58 Goal scored
Goal - Danny Welbeck - Man Utd 2 - 0 A Villa Goal scored by Danny Welbeck from close in to the bottom right corner of the goal. Man Utd 2-0 Aston Villa.
Patrice Evra delivers the ball,
Free kick awarded for a foul by Rafael Da Silva on Stephen Ireland. Eric Lichaj takes the free kick.
Booking Booking for Gary Gardner for unsporting behaviour.
Foul by Gary Gardner on Ashley Young, free kick awarded. Free kick taken by Ashley Young.
Patrice Evra produces a cross, Effort from the edge of the area by Antonio Valencia goes wide of the left-hand upright.
Danny Welbeck takes a shot. Save made by Shay Given. Outswinging corner taken by Ashley Young from the right by-line. Wayne Rooney takes a shot from just inside the penalty box which clears the bar.
Ashley Young decides to take a short corner, Effort from outside the penalty box by Paul Scholes goes wide right of the goal.
Centre by Antonio Valencia, Eric Lichaj gets a block in.
Stephen Ireland has shot on goal from just outside the area which goes wide of the right-hand upright.
Andreas Weimann fouled by Patrice Evra, the ref awards a free kick. Direct free kick taken by James Collins.
The ball is sent over by Antonio Valencia, Danny Welbeck takes a shot. James Collins gets a block in. Corner taken right-footed by Ashley Young, James Collins makes a clearance. Paul Scholes takes a shot. Save by Shay Given.
Danny Welbeck takes a shot. Nathan Baker gets a block in. Corner taken by Ashley Young from the left by-line played to the near post. Wayne Rooney produces a header from deep inside the six-yard box which goes wide of the right-hand post.
Wayne Rooney challenges Alan Hutton unfairly and gives away a free kick. Centre by Barry Bannan, Headed effort from inside the area by Ciaran Clark misses to the left of the goal.
Wayne Rooney takes a shot. Save by Shay Given. Short corner taken by Ashley Young.
The ball is swung over by Rafael Da Silva, Nathan Baker manages to make a clearance.
The ball is delivered by Wayne Rooney, Danny Welbeck takes a shot. Nathan Baker gets a block in.
Stephen Ireland gives away a free kick for an unfair challenge on Ashley Young. Free kick taken by Ashley Young.
Ashley Young delivers the ball, Nathan Baker manages to make a clearance. Foul by Jonathan Evans on Andreas Weimann, free kick awarded. Nathan Baker takes the direct free kick.
Antonio Valencia concedes a free kick for a foul on Eric Lichaj. Shay Given takes the direct free kick.
Paul Scholes takes a shot. Alan Hutton gets a block in.
Barry Bannan sends in a cross, Gary Gardner takes a shot. Save made by David De Gea.
Booking Booking for Michael Carrick for unsporting behaviour.
Michael Carrick gives away a free kick for an unfair challenge on Gary Gardner.
Ashley Young provided the assist for the goal.
6:53 Goal scored
Goal - Wayne Rooney - Man Utd 1 - 0 A Villa Wayne Rooney scores a placed penalty. Man Utd 1-0 Aston Villa.
Unfair challenge on Ashley Young by Ciaran Clark results in a Penalty.
Wayne Rooney takes a shot. James Collins gets a block in.
The ball is crossed by Wayne Rooney.
Andreas Weimann takes a shot. Comfortable save by David De Gea.
The game kicks-off.
Live text and data provided by The Press Association
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.