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."

See a photo gallery of all the action from Saturday's Premier League matches on the BBC Sport Facebook site. 

Lineup, Bookings (2) & Substitutions (6)

Fulham

  • 01 Stekelenburg
  • 27 Riether
  • 03 Riise
  • 14 Karagounis Booked (Bent - 82' )
  • 04 Senderos (Amorebieta - 37' )
  • 18 Hughes
  • 28 Parker
  • 07 Sidwell
  • 19 Taarabt
  • 24 Dejagah (Kasami - 65' )
  • 15 Richardson

Substitutes

  • 08 Kasami
  • 10 Ruiz
  • 11 Kacaniklic
  • 13 Stockdale
  • 16 Duff
  • 35 Amorebieta
  • 39 Bent

Manchester City

  • 01 Hart
  • 22 Clichy
  • 13 Kolarov
  • 25 Fernandinho
  • 04 Kompany
  • 26 Demichelis Booked
  • 08 Nasri (Milner - 75' )
  • 42 Y Touré
  • 09 Negredo
  • 10 Dzeko (Jesús Navas - 58' )
  • 21 Silva (Javi García - 84' )

Substitutes

  • 07 Milner
  • 14 Javi García
  • 15 Jesús Navas
  • 17 Rodwell
  • 30 Pantilimon
  • 38 Boyata
  • 60 Guidetti
Ref: Kevin Friend
Att: 25,509

Match Stats

Shots

12 17

On target

5 10

Corners

4 4

Fouls

7 15

Live Text Commentary

Full time

Full Time Match ends, Fulham 2, Manchester City 4.

90:00 +3:13 Full time

Full Time Second Half ends, Fulham 2, Manchester City 4.

90:00 +2:55

Attempt blocked. Pajtim Kasami (Fulham) left footed shot from outside the box is blocked.

90:00 +2:11

Foul by Fernandinho (Manchester City).

90:00 +2:11

Adel Taarabt (Fulham) wins a free kick in the attacking half.

89:47

Foul by Fernandinho (Manchester City).

89:47

Aaron Hughes (Fulham) wins a free kick in the defensive half.

88:29

Attempt saved. Álvaro Negredo (Manchester City) left footed shot from the centre of the box is saved in the centre of the goal.

87:38

Attempt saved. Álvaro Negredo (Manchester City) left footed shot from outside the box is saved in the centre of the goal. Assisted by Aleksandar Kolarov.

86:13

Foul by Álvaro Negredo (Manchester City).

86:13

Steve Sidwell (Fulham) wins a free kick in the defensive half.

85:29

Offside, Fulham. Adel Taarabt tries a through ball, but John Arne Riise is caught offside.

85:14

Attempt blocked. James Milner (Manchester City) right footed shot from outside the box is blocked. Assisted by Fernandinho.

83:41 Substitution

Substitution Substitution, Manchester City. Javi García replaces David Silva.

82:36 Goal scored

Goal! Goal! Fulham 2, Manchester City 4. James Milner (Manchester City) right footed shot from the centre of the box to the bottom left corner. Assisted by Álvaro Negredo with a cross.

81:13 Substitution

Substitution Substitution, Fulham. Darren Bent replaces Giorgos Karagounis.

77:21 Goal scored

Goal! Goal! Fulham 2, Manchester City 3. Jesús Navas (Manchester City) right footed shot from a difficult angle on the right to the centre of the goal. Assisted by David Silva with a through ball.

76:06

Foul by Yaya Touré (Manchester City).

76:06

Giorgos Karagounis (Fulham) wins a free kick in the attacking half.

74:41 Substitution

Substitution Substitution, Manchester City. James Milner replaces Samir Nasri.

74:18

Corner, Manchester City. Conceded by Fernando Amorebieta.

68:35 Goal scored

Goal! Own Goal by Vincent Kompany, Manchester City. Fulham 2, Manchester City 2.

64:19 Substitution

Substitution Substitution, Fulham. Pajtim Kasami replaces Ashkan Dejagah.

63:13

Samir Nasri (Manchester City) wins a free kick in the attacking half.

63:13

Foul by Steve Sidwell (Fulham).

62:17

Foul by Samir Nasri (Manchester City).

62:17

Giorgos Karagounis (Fulham) wins a free kick on the right wing.

61:41

Corner, Fulham. Conceded by Aleksandar Kolarov.

59:35 Booking

Booking Giorgos Karagounis (Fulham) is shown the yellow card.

59:29

Attempt missed. Jesús Navas (Manchester City) right footed shot from the centre of the box misses to the right.

59:27

Attempt blocked. Álvaro Negredo (Manchester City) left footed shot from the centre of the box is blocked. Assisted by David Silva.

58:50

Offside, Manchester City. David Silva tries a through ball, but Álvaro Negredo is caught offside.

58:11

David Silva (Manchester City) wins a free kick in the defensive half.

58:11

Foul by Giorgos Karagounis (Fulham).

57:15 Substitution

Substitution Substitution, Manchester City. Jesús Navas replaces Edin Dzeko.

56:32

Attempt missed. Steve Sidwell (Fulham) header from the left side of the six yard box misses to the left. Assisted by Ashkan Dejagah with a cross.

52:31

Offside, Manchester City. David Silva tries a through ball, but Aleksandar Kolarov is caught offside.

51:50

Foul by Edin Dzeko (Manchester City).

51:50

Steve Sidwell (Fulham) wins a free kick in the attacking half.

49:35 Goal scored

Goal! Goal! Fulham 1, Manchester City 2. Kieran Richardson (Fulham) left footed shot from the centre of the box to the bottom right corner. Assisted by Adel Taarabt.

46:37

Attempt saved. David Silva (Manchester City) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Aleksandar Kolarov.

45:00

Second Half begins Fulham 0, Manchester City 2.

45:00 +1:12 Half time

Half Time First Half ends, Fulham 0, Manchester City 2.

45:00 +0:48

Foul by Yaya Touré (Manchester City).

45:00 +0:48

Ashkan Dejagah (Fulham) wins a free kick in the defensive half.

45:00 +0:16 Booking

Booking Martín Demichelis (Manchester City) is shown the yellow card for a bad foul.

45:00 +0:11

Foul by Martín Demichelis (Manchester City).

45:00 +0:11

Adel Taarabt (Fulham) wins a free kick in the defensive half.

44:36

Attempt blocked. Álvaro Negredo (Manchester City) left footed shot from the centre of the box is blocked. Assisted by Samir Nasri with a cross.

44:21

Corner, Manchester City. Conceded by Fernando Amorebieta.

42:26 Goal scored

Goal! Goal! Fulham 0, Manchester City 2. Vincent Kompany (Manchester City) right footed shot from very close range to the top left corner following a set piece situation.

42:23

Attempt saved. Martín Demichelis (Manchester City) header from the left side of the six yard box is saved in the centre of the goal. Assisted by David Silva with a cross.

41:24

Samir Nasri (Manchester City) wins a free kick on the right wing.

41:24

Foul by John Arne Riise (Fulham).

39:14

Offside, Fulham. John Arne Riise tries a through ball, but Adel Taarabt is caught offside.

38:40

Corner, Fulham. Conceded by Vincent Kompany.

38:36

Attempt blocked. Adel Taarabt (Fulham) right footed shot from outside the box is blocked. Assisted by Steve Sidwell.

36:37 Substitution

Substitution Substitution, Fulham. Fernando Amorebieta replaces Philippe Senderos because of an injury.

36:06

Attempt saved. Edin Dzeko (Manchester City) header from the centre of the box is saved in the top left corner. Assisted by Samir Nasri.

35:05

Attempt saved. Edin Dzeko (Manchester City) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Aleksandar Kolarov.

34:12

Foul by Vincent Kompany (Manchester City).

34:12

Adel Taarabt (Fulham) wins a free kick in the defensive half.

33:17

Foul by Fernandinho (Manchester City).

33:17

Adel Taarabt (Fulham) wins a free kick in the defensive half.

32:38

Corner, Manchester City. Conceded by Aaron Hughes.

31:04

Corner, Fulham. Conceded by Joe Hart.

31:03

Attempt saved. Adel Taarabt (Fulham) right footed shot from outside the box is saved in the bottom left corner. Assisted by Ashkan Dejagah.

30:48

Attempt blocked. Edin Dzeko (Manchester City) right footed shot from the centre of the box is blocked. Assisted by Álvaro Negredo.

30:24

Attempt missed. Ashkan Dejagah (Fulham) right footed shot from the centre of the box misses to the left. Assisted by Sascha Riether.

29:09

Foul by David Silva (Manchester City).

29:09

Giorgos Karagounis (Fulham) wins a free kick in the defensive half.

27:56

Attempt saved. Adel Taarabt (Fulham) right footed shot from outside the box is saved in the centre of the goal. Assisted by Giorgos Karagounis.

27:20

Foul by Aleksandar Kolarov (Manchester City).

27:20

Scott Parker (Fulham) wins a free kick on the right wing.

24:51

Attempt missed. Kieran Richardson (Fulham) header from the right side of the six yard box misses to the left. Assisted by Ashkan Dejagah with a cross.

22:42 Goal scored

Goal! Goal! Fulham 0, Manchester City 1. Yaya Touré (Manchester City) from a free kick with a right footed shot to the top right corner.

20:49

Foul by Steve Sidwell (Fulham).

20:49

David Silva (Manchester City) wins a free kick in the attacking half.

19:41

Attempt saved. Adel Taarabt (Fulham) right footed shot from outside the box is saved in the centre of the goal. Assisted by Ashkan Dejagah.

18:14

Foul by Fernandinho (Manchester City).

18:14

Scott Parker (Fulham) wins a free kick in the defensive half.

17:34

Offside, Fulham. Maarten Stekelenburg tries a through ball, but Kieran Richardson is caught offside.

15:49

Foul by Fernandinho (Manchester City).

15:49

Giorgos Karagounis (Fulham) wins a free kick in the defensive half.

14:56

Attempt blocked. Steve Sidwell (Fulham) right footed shot from outside the box is blocked.

13:45

Dangerous play by Martín Demichelis (Manchester City).

13:45

John Arne Riise (Fulham) wins a free kick in the defensive half.

13:43

Attempt missed. Edin Dzeko (Manchester City) right footed shot from the centre of the box misses to the right. Assisted by Samir Nasri with a cross following a corner.

13:14

Corner, Manchester City. Conceded by John Arne Riise.

13:11

David Silva (Manchester City) hits the bar with a left footed shot from the centre of the box. Assisted by Edin Dzeko.

12:04

Attempt saved. Adel Taarabt (Fulham) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Kieran Richardson.

6:08

Offside, Fulham. Kieran Richardson tries a through ball, but John Arne Riise is caught offside.

6:02

Attempt blocked. Kieran Richardson (Fulham) left footed shot from outside the box is blocked.

5:32

Corner, Fulham. Conceded by Aleksandar Kolarov.

3:11

Fernandinho (Manchester City) wins a free kick on the right wing.

3:11

Foul by Steve Sidwell (Fulham).

2:49

Vincent Kompany (Manchester City) wins a free kick in the defensive half.

2:49

Foul by Steve Sidwell (Fulham).

2:17

Hand ball by John Arne Riise (Fulham).

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers