Nicky Maynard scored from close range three minutes into injury time as Bristol City beat Millwall.

The result means City move above Millwall in the Championship table into 19th, while the Lions are now one place above the relegation zone.

Both teams spurned a host of chances before the break and the game lost any momentum it had after the restart.

Millwall defender Tony Craig hit his own post but that was the closest either side went before Maynard's goal.

Albert Adomah and Marvin Elliott missed good early opportunities for City, while Liam Trotter, Harry Kane, Hamer Bouazza and Liam Feeney all had clear chances to beat David James in the home goal.

But in the dying stages Maynard, who has been transfer-listed after turning down the offer of a new contract with the Robins, popped up for his eighth goal of the season.

Adomah crossed from the right and the striker stole in to tap home from a couple of yards out.

Bristol City manager Derek McInnes:

"We said prior to the game that we'd sacrifice a performance for a result and I think that was possibly the case.

"Millwall - being the away team - got far too much of the ball and enjoyed the game too much.

"We huffed and puffed, and we were nowhere near at our best, but thankfully we kept going to the death and got our goal.

"It's harsh on Millwall, I've got to say that."

Millwall boss Kenny Jackett:

"We had a lot of chances but that's been us, we haven't scored enough goals generally.

"When the goal came at the end there it's cost us and it's cost us badly.

"We haven't got outplayed by Bristol City, we haven't been second best in any area but we've lost the game. We've had too many like that. Our 'goals for' tally has been poor."

Lineup, Bookings (2) & Substitutions (6)

Bristol City

  • 01 James
  • 05 Nyatanga
  • 06 Carey
  • 36 McGivern
  • 07 Elliott (Cisse - 12' )
  • 08 Kilkenny
  • 14 Skuse Booked
  • 27 Adomah
  • 37 Pearson
  • 10 Maynard
  • 34 Pitman (Bolasie - 76' )

Substitutes

  • 22 Gerken
  • 18 Wilson
  • 17 Bolasie
  • 21 Cisse (Clarkson - 83' )
  • 16 Clarkson

Millwall

  • 23 Mildenhall
  • 02 Dunne
  • 03 Craig
  • 05 Robinson
  • 21 Smith Booked (Marquis - 90' )
  • 31 Lowry
  • 06 Trotter
  • 08 Bouazza
  • 15 Feeney
  • 44 Wright (Abdou - 67' )
  • 37 Kane (Henderson - 85' )

Substitutes

  • 01 Forde
  • 14 Henry
  • 26 Abdou
  • 07 Henderson
  • 09 Marquis
Ref: Drysdale
Att: 12,410

Match Stats

Shots

18 14

On target

14 9

Corners

6 10

Fouls

9 7

Live Text Commentary

90:00 +4:50 Full time

Full Time The referee brings the game to a close.

90:00 +4:46 Substitution

Substitution Jack Smith leaves the field to be replaced by John Marquis.

90:00 +4:27

Corner taken left-footed by Hamer Bouazza to the near post, clearance by Louis Carey.

90:00 +4:06

Liam Trotter takes a inswinging corner to the near post, clearance made by Ryan McGivern.

90:00 +2:32

The assist for the goal came from Stephen Pearson.

90:00 +2:32 Goal scored

Goal! - Nicky Maynard - Bristol C 1 - 0 Millwall Goal scored by Nicky Maynard from close in to the bottom left corner of the goal. Bristol City 1-0 Millwall.

90:00 +2:26

The ball is crossed by Albert Adomah.

90:00 +0:44

The offside flag is raised against Nicky Maynard. Free kick taken by Steve Mildenhall.

88:33

Yannick Bolasie challenges Liam Feeney unfairly and gives away a free kick. Free kick taken by Steve Mildenhall.

87:27

Ryan McGivern takes a shot. Save made by Steve Mildenhall.

86:03

Yannick Bolasie crosses the ball.

84:19

David James restarts play with the free kick.

84:19 Substitution

Substitution (Millwall) makes a substitution, with Darius Henderson coming on for Harry Kane.

84:19

The assistant referee flags for offside against Hamer Bouazza.

82:35

Free kick taken by Shane Lowry.

82:35 Substitution

Substitution David Clarkson joins the action as a substitute, replacing Kalifa Cisse.

82:35

Unfair challenge on Liam Trotter by Kalifa Cisse results in a free kick.

81:56

Albert Adomah takes a shot. Save made by Steve Mildenhall.

79:23

Yannick Bolasie takes a shot. Save made by Steve Mildenhall.

79:02

Foul by Kalifa Cisse on Hamer Bouazza, free kick awarded. Shane Lowry takes the free kick.

78:11

A cross is delivered by Ryan McGivern.

75:53 Substitution

Substitution Yannick Bolasie is brought on as a substitute for Brett Pitman.

75:15

Corner taken left-footed by Hamer Bouazza to the near post, clearance made by Stephen Pearson.

74:04

The ball is swung over by Stephen Pearson, Tony Craig manages to make a clearance.

72:20

Centre by Ryan McGivern, clearance made by Tony Craig.

70:24

Corner from left by-line taken by Brett Pitman.

70:11

Stephen Pearson has a volleyed shot. Blocked by Alan Dunne.

69:47

Unfair challenge on Neil Kilkenny by Liam Trotter results in a free kick. Neil Kilkenny restarts play with the free kick.

69:05

Paul Robinson concedes a free kick for a foul on Brett Pitman. Free kick taken by Ryan McGivern.

68:45

Effort on goal by Jack Smith from 35 yards went over.

68:23

Inswinging corner taken left-footed by Hamer Bouazza, Lewin Nyatanga manages to make a clearance.

68:12

The ball is sent over by Liam Feeney, clearance made by Ryan McGivern.

66:22

David James takes the free kick.

66:22 Substitution

Substitution Josh Wright leaves the field to be replaced by Nadjim Abdou.

66:22

Harry Kane is flagged offside by the assistant referee.

63:41

The ball is delivered by Cole Skuse, Shane Lowry manages to make a clearance.

61:57

Free kick awarded for a foul by Ryan McGivern on Liam Feeney. Jack Smith restarts play with the free kick.

61:44

Shot from 12 yards from Brett Pitman. Save by Steve Mildenhall.

59:37

Brett Pitman fires a strike on goal direct from the free kick, save made by Steve Mildenhall.

59:37 Booking

Booking Jack Smith receives a yellow card.

59:18

Free kick awarded for an unfair challenge on Kalifa Cisse by Jack Smith.

58:38

The offside flag is raised against Liam Trotter. Indirect free kick taken by David James.

58:03

Shot by Jack Smith from a long way out goes over the target.

57:36

Outswinging corner taken by Hamer Bouazza, Stephen Pearson makes a clearance.

57:09

Corner taken left-footed by Hamer Bouazza, Paul Robinson takes a shot. Ryan McGivern gets a block in.

56:58

Effort from 20 yards by Jack Smith. Louis Carey gets a block in.

55:00

Louis Carey challenges Harry Kane unfairly and gives away a free kick. Hamer Bouazza produces a strike on goal direct from the free kick.

53:08

Nicky Maynard takes a shot. Blocked by Paul Robinson.

52:43

Corner taken short by Stephen Pearson.

52:33

Albert Adomah delivers the ball, Paul Robinson manages to make a clearance.

52:03

Unfair challenge on Kalifa Cisse by Liam Trotter results in a free kick. Free kick taken by Cole Skuse.

50:20

Free kick awarded for an unfair challenge on Neil Kilkenny by Liam Trotter. Neil Kilkenny takes the direct free kick.

49:40

A cross is delivered by Ryan McGivern, Steve Mildenhall makes a save.

47:50

Corner taken by Hamer Bouazza from the left by-line played to the near post, clearance made by Ryan McGivern.

47:39

Hamer Bouazza takes a shot. Blocked by Lewin Nyatanga.

47:18

Unfair challenge on Liam Trotter by Ryan McGivern results in a free kick. Free kick taken by Alan Dunne.

46:27

Alan Dunne gives away a free kick for an unfair challenge on Brett Pitman. The free kick is swung in right-footed by Neil Kilkenny, Liam Trotter makes a clearance.

45:44

Ryan McGivern challenges Liam Feeney unfairly and gives away a free kick. Alan Dunne takes the direct free kick.

45:01

The referee blows his whistle to start the second half.

45:00 +1:20 Half time

Half Time It is the end of the first-half.

45:00 +0:57

Shot by Liam Trotter from 6 yards. Save by David James.

43:22

Effort from just outside the area by Nicky Maynard goes over the target.

41:29

Free kick taken by Steve Mildenhall.

41:29 Booking

Booking Cole Skuse goes into the referee's book for unsporting behaviour.

41:18

Cole Skuse gives away a free kick for an unfair challenge on Tony Craig.

40:45

Shot by Liam Feeney from 6 yards. Save made by David James.

39:07

Brett Pitman takes a shot from close in clearing the crossbar.

37:13

Liam Feeney delivers the ball.

36:10

Long range effort from Stephen Pearson misses to the left of the goal.

35:31

Nicky Maynard fouled by Paul Robinson, the ref awards a free kick. Neil Kilkenny takes the direct free kick.

34:59

Liam Feeney sends in a cross, Harry Kane takes a shot. Save by David James.

32:47

Close range shot by Liam Feeney goes wide of the left-hand upright.

32:13

Unfair challenge on Jack Smith by Ryan McGivern results in a free kick. Direct free kick taken by Alan Dunne.

28:43

Nicky Maynard takes a shot. Steve Mildenhall makes a save.

25:01

Brett Pitman takes a shot. Steve Mildenhall makes a save.

24:04

Inswinging corner taken left-footed by Hamer Bouazza from the right by-line, Louis Carey makes a clearance.

23:52

Jack Smith takes a shot. Blocked by Lewin Nyatanga.

23:06

Outswinging corner taken by Brett Pitman from the right by-line, Ryan McGivern takes a shot. Save by Steve Mildenhall.

22:56

A cross is delivered by Cole Skuse, clearance by Shane Lowry.

20:35

Liam Feeney sends in a cross, Lewin Nyatanga makes a clearance.

18:54

Liam Feeney delivers the ball, Close range shot by Hamer Bouazza goes wide of the right-hand upright.

16:53

Nicky Maynard takes a shot. Steve Mildenhall makes a save.

16:24

The referee blows for offside. Free kick taken by David James.

15:43

Albert Adomah produces a cross.

15:26

Liam Feeney produces a cross, David James makes a save.

14:31

Hamer Bouazza takes a outswinging corner from the left by-line played to the near post, Kalifa Cisse manages to make a clearance.

14:20

Jack Smith takes a shot. David James makes a save.

13:30

Harry Kane takes a shot. Blocked by Kalifa Cisse. Hamer Bouazza takes a inswinging corner to the near post, Louis Carey manages to make a clearance.

13:00

Liam Feeney produces a cross, Louis Carey manages to make a clearance.

12:16

Alan Dunne restarts play with the free kick.

11:48 Substitution

Substitution Kalifa Cisse comes on in place of Marvin Elliott.

9:52

A cross is delivered by Stephen Pearson, Paul Robinson manages to make a clearance.

5:14

Shot on goal by Brett Pitman from just inside the area goes over the target.

4:01

Inswinging corner taken from the left by-line by Brett Pitman.

3:37

Albert Adomah takes a shot. Save by Steve Mildenhall.

2:05

Corner taken right-footed by Brett Pitman to the near post, clearance by Alan Dunne.

0:51

Corner taken by Brett Pitman from the left by-line played to the near post, clearance by Liam Trotter.

0:20

The ball is crossed by Stephen Pearson, Marvin Elliott takes a shot. Paul Robinson gets a block in.

0:00

The ref blows the whistle to begin the match.

Live data and text provided by our data suppliers