Manchester United moved 15 points clear at the top of the Barclays Premier League with a 2-0 win over bottom side QPR at Loftus Road.
Brazilian full-back Rafael put United ahead with a powerful drive on 23 minutes after his compatriot Julio Cesar had saved from Robin van Persie.
United lost top scorer Van Persie with a hip injury but Ryan Giggs made sure of victory with a good strike 10 minutes from time and then hit the bar soon after.
The Spaniard tucked home his second goal of the game to make it 2-1 five minutes from time to ease some of the pressure on manager Arsene Wenger.
Cazorla's opening goal in the sixth minute had been cancelled out in the 68th minute as Villa broke from deep and Andreas Weimann fired a shot through Wojciech Szczesny's grasp from 25 yards.
Roberto Martinez's men were second best early on but came to life in the last minute of the first half as Arouna Kone struck twice.
Maynor Figueroa grabbed the third early in the second period and things got even worse for the hosts when Pavel Pogrebnyak was sent off for a bad challenge on Figueroa.
Moments after having a goal disallowed, the Belgian struck from the spot in the 35th minute after Craig Gardner was penalised for handling a cross from Liam Ridgewell.
Lukaku's second came in freak circumstances after he broke into the box and Simon Mignolet's attempted clearance cannoned off him into the net.
Stephane Sessegnon pulled one back 11 minutes from time and James McClean went close to grabbing a last-gasp equaliser but the Baggies held on.
Leon Osman headed Everton ahead six minutes before half-time from a Leighton Baines cross.
But the Canaries dealt Everton's Champions League hopes a blow as they fought to the end and were rewarded when Kamara headed in after a corner and Holt swept in from close range.
The Bulgarian hooked a shot from a clearance into the top corner to put the hosts in front in first-half injury time at Craven Cottage.
Goalkeeper Mark Schwarzer denied Stoke a point when he saved a second-half penalty from Jonathan Walters.