Manchester City moved up to second in the Premier League table after a thrilling victory against Fulham.
Yaya Toure scored direct from a free-kick and Vincent Kompany prodded in a second as City looked to be in control.
Fulham pulled one back when Kieran Richardson finished off a counter-attacking move before Kompany sliced a clearance into his own net for 2-2.
Free-scoring Manchester City
Manchester City have now scored at least three goals in 10 of their last 12 matches in all competitions
But Jesus Navas converted David Silva's pass to restore City's lead and James Milner tapped in a fourth goal late on.
City are now unbeaten in nine matches in all competitions and are only a point behind Liverpool, who had moved top earlier in the day
with a 3-1 victory over Cardiff.
Manuel Pellegrini's side had won all eight of their home league matches, but had previously struggled on their travels, collecting only eight points from their first eight away games.
But they looked on course to claim a routine victory after first-half goals from Toure and Kompany, before the hosts fought back to 2-2, aided by a bizarre own goal from Kompany, who sliced the ball into his own goal under no pressure.
City then illustrated the strength of their squad with substitutes Navas and Milner both scoring late on.
Meulensteen salutes Fulham 'character'
Fulham, who stay 19th, had an early chance to go ahead but Joe Hart, making his first Premier League start since 27 October, pushed away Adel Taarabt's shot from the edge of the penalty area, before Silva curled an effort against the Fulham crossbar at the other end.
However, City, who have scored the most goals in the division, went ahead soon after with Toure grabbing his 11th of the season, a wonderful 20-yard free-kick after Steve Sidwell's foul on Silva.
The visitors doubled their lead just before half-time with Kompany tapping the ball in from close range after Martin Demichelis's header was parried by Maarten Stekelenburg to give City a well-deserved two-goal lead at the break.
Fulham had lost eight of their previous nine matches in all competitions and looked to be heading for another defeat, but they pulled a goal back after 50 minutes with a quick counter-attack after Silva had been dispossessed on the edge of the home side's penalty area.
The excellent Taarabt, playing in place of the injured Dimitar Berbatov, countered down the left wing and found an unmarked Richardson, who calmly finished past Hart from 12 yards out.
Pellegrini thankful for 'nervous' win
And the hosts then equalised through Kompany's extraordinary 70th-minute own goal - but they were only level for eight minutes.
Silva's excellent first-time through ball found Navas and the Spain international kept his composure to shoot low past Stekelenburg.
With Fulham pushing for another equaliser, City sealed the three points through Milner.
Striker Alvaro Negredo showed great technique to cross the ball with the outside of his left foot from the right wing, the ball falling to Milner to side-foot past the Fulham goalkeeper.
Fulham manager Rene Meulensteen said:
"I made it clear at the beginning of the week that against a quality side like this, we would not sit back and wait for them. We gave a good account of ourselves and we did extremely well to get back from 2-0 down to 2-2.
"But it is a shame we are again empty-handed. If you look at every performance in the last four games, we should not be in this position in the table. We have had some difficult opponents and we have to make sure we start turning the performances into points."
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.