Aston Villa skipper Gareth Barry converted a controversial penalty to cap a second-half fightback and keep Martin O'Neill's side ahead of Everton in the battle for a European spot after a thrilling 3-3 draw.

Villa trailed 2-0 and then 3-1 but refused to buckle and Barry earned them a share of the spoils after Joleon Lescott caught Stiliyan Petrov in the face with his boot when attempting to clear.

Marouane Fellaini and Cahill put Everton in control and, after John Carew had reduced the arrears, Steven Pienaar put the Toffees back in command before James Milner and Barry rescued a point for Villa.

Cahill's goal came in the 22nd minute after he thumped his header against the crossbar from a Pienaar corner and he was first to react to the rebound and headed past goalkeeper Brad Friedel.

But the result did little for the chances of either side in their attempts to overhaul fourth-placed Arsenal.

Villa has now gone 10 games without a win in all competitions and Everton is still without an away league victory in 2009.

Mark Hughes' bold decision to leave Robinho on the bench backfired as Manchester City was humbled 3-1 in front of its furious fans by Fulham.

Instead of City applying pressure on West Ham for the final European slot, a second-half double from Clint Dempsey either side of a Dickson Etuhu effort against his old club mean Fulham are now pressing for seventh spot.

City must now attempt to overcome a first-leg deficit against Hamburg on Thursday to reach the UEFA Cup semi-finals and salvage their season.

No-one is suggesting the Blues might go down but the brutal truth is they are just eight points above second-bottom Middlesbrough after a season that promised so much but is turning into one of deep depression.

Aston Villa 3
(Carew 33, Milner 55, Barry 67p)
Everton 3
(Fallaini 19, Cahill 23, Pienaar 53)

Manchester City 1
(Ireland 28)
Fulham 3
(Dempsey 50, 83, Etuhu 59)