James Tavernier scored twice as Rotherham kept their hopes of automatic promotion from League One alive with victory over improving Bristol City.

Full-back Tavernier, who is on loan from Newcastle, opened the scoring inside two minutes with a 25-yard shot.

The visitors levelled just after half-time when experienced winger Wade Elliott fired in from outside the box.

But the Millers moved within five points of second-placed Brentford when Tavernier scored from a free-kick.

Steve Cotterill's men remain in mid-table and lie six points above the relegation zone.

Bristol City boss Steve Cotterill told BBC Radio Bristol:

"We were better than them. I'm a little disappointed we haven't got something out of today.

"I suppose it was quite a yardstick really because my first game against them we lost 2-1 at our place.

"In the cold light of day we'll have to look at the progress we've made and be pleased with that."

Lineup, Bookings (2) & Substitutions (6)

Rotherham United

  • 21 Collin
  • 27 Tavernier
  • 03 Skarz
  • 08 Frecklington
  • 04 Arnason
  • 20 Morgan
  • 37 Adams (Milsom - 88' )
  • 36 Smallwood
  • 22 Agard
  • 09 Revell (Davis - 89' )
  • 18 Pringle (Vuckic - 81' )

Substitutes

  • 01 Shearer
  • 05 Davis
  • 10 O'Connor
  • 15 Milsom
  • 25 Addison
  • 28 Vuckic
  • 35 Hitchcock

Bristol City

  • 01 Fielding
  • 11 Wagstaff
  • 17 Cunningham Booked (El-Abd - 84' )
  • 36 Nosworthy
  • 35 Osborne
  • 03 Williams
  • 34 Gillett Booked
  • 08 Elliott
  • 09 Baldock
  • 24 Paterson (Barnett - 84' )
  • 10 Emmanuel-Thomas (Pack - 83' )

Substitutes

  • 02 Moloney
  • 18 El-Abd
  • 19 Pearson
  • 21 Pack
  • 23 Barnett
  • 27 Burns
  • 32 Richards
Ref: Gavin Ward
Att: 8,607

Match Stats

Shots

10 9

On target

4 4

Corners

3 6

Fouls

5 9

Live Text Commentary

Full time

Full Time Match ends, Rotherham United 2, Bristol City 1.

90:00 +4:06 Full time

Full Time Second Half ends, Rotherham United 2, Bristol City 1.

90:00 +3:05

Attempt saved. Karleigh Osborne (Bristol City) right footed shot from more than 35 yards is saved in the top centre of the goal.

90:00 +0:45

Attempt saved. Derrick Williams (Bristol City) right footed shot from outside the box is saved in the top centre of the goal.

88:38 Substitution

Substitution Substitution, Rotherham United. Claude Davis replaces Alex Revell.

87:36 Substitution

Substitution Substitution, Rotherham United. Robert Milsom replaces Nicky Adams.

86:44

Foul by Nyron Nosworthy (Bristol City).

86:44

Nicky Adams (Rotherham United) wins a free kick on the left wing.

85:43

Marlon Pack (Bristol City) wins a free kick in the defensive half.

85:43

Foul by Haris Vuckic (Rotherham United).

85:05

Corner, Bristol City. Conceded by James Tavernier.

84:28

Simon Gillett (Bristol City) wins a free kick in the defensive half.

84:28

Foul by Haris Vuckic (Rotherham United).

83:36 Substitution

Substitution Substitution, Bristol City. Tyrone Barnett replaces Martin Paterson.

83:19 Substitution

Substitution Substitution, Bristol City. Adam El-Abd replaces Greg Cunningham.

82:45 Substitution

Substitution Substitution, Bristol City. Marlon Pack replaces Jay Emmanuel-Thomas.

82:16

Attempt missed. Jay Emmanuel-Thomas (Bristol City) right footed shot from outside the box is just a bit too high.

80:05 Substitution

Substitution Substitution, Rotherham United. Haris Vuckic replaces Ben Pringle.

78:05

Attempt missed. Kári Arnason (Rotherham United) right footed shot from outside the box misses to the left.

76:54

Corner, Rotherham United. Conceded by Nyron Nosworthy.

68:26

Attempt saved. Kieran Agard (Rotherham United) header from the centre of the box is saved in the top centre of the goal.

68:01

Corner, Rotherham United. Conceded by Nyron Nosworthy.

67:32 Booking

Booking Simon Gillett (Bristol City) is shown the yellow card.

67:22

Kieran Agard (Rotherham United) wins a free kick in the defensive half.

67:22

Foul by Simon Gillett (Bristol City).

64:40

Attempt missed. Derrick Williams (Bristol City) right footed shot from more than 35 yards is just a bit too high.

63:43

Corner, Bristol City. Conceded by Joe Skarz.

61:41

Corner, Bristol City. Conceded by Kári Arnason.

59:28 Goal scored

Goal! Goal! Rotherham United 2, Bristol City 1. James Tavernier (Rotherham United) from a free kick with a right footed shot to the top right corner.

58:00

Hand ball by Frank Fielding (Bristol City).

57:43

Attempt saved. Ben Pringle (Rotherham United) right footed shot from outside the box is saved in the centre of the goal.

56:44

Foul by Alex Revell (Rotherham United).

56:44

Greg Cunningham (Bristol City) wins a free kick in the attacking half.

53:49

Attempt missed. Lee Frecklington (Rotherham United) left footed shot from outside the box misses to the left.

53:14

Ben Pringle (Rotherham United) wins a free kick in the attacking half.

53:14

Foul by Karleigh Osborne (Bristol City).

51:32

Hand ball by Simon Gillett (Bristol City).

50:43

Alex Revell (Rotherham United) wins a free kick in the defensive half.

50:43

Foul by Jay Emmanuel-Thomas (Bristol City).

47:53 Goal scored

Goal! Goal! Rotherham United 1, Bristol City 1. Wade Elliott (Bristol City) right footed shot from outside the box to the top left corner.

45:00

Second Half begins Rotherham United 1, Bristol City 0.

45:00 +1:14 Half time

Half Time First Half ends, Rotherham United 1, Bristol City 0.

45:00 +1:00

Attempt missed. Martin Paterson (Bristol City) left footed shot from outside the box is close, but misses to the left.

42:10

Attempt missed. Kieran Agard (Rotherham United) right footed shot from outside the box is just a bit too high.

40:41

Attempt missed. Jay Emmanuel-Thomas (Bristol City) left footed shot from outside the box misses to the left.

39:00 Booking

Booking Greg Cunningham (Bristol City) is shown the yellow card.

38:29

Alex Revell (Rotherham United) wins a free kick in the defensive half.

38:29

Foul by Greg Cunningham (Bristol City).

37:12

Attempt missed. Kieran Agard (Rotherham United) left footed shot from the left side of the box is close, but misses to the right.

32:59

Corner, Bristol City. Conceded by Kári Arnason.

30:28

Attempt missed. Richard Smallwood (Rotherham United) right footed shot from the left side of the box is close, but misses to the right.

29:56

Attempt saved. Sam Baldock (Bristol City) header from the centre of the box is saved in the top centre of the goal.

26:48

Attempt missed. Greg Cunningham (Bristol City) right footed shot from outside the box is too high.

26:07

Corner, Bristol City. Conceded by Kári Arnason.

23:36

Attempt blocked. Nicky Adams (Rotherham United) right footed shot from outside the box is blocked.

22:52

Foul by Alex Revell (Rotherham United).

22:52

Nyron Nosworthy (Bristol City) wins a free kick in the attacking half.

13:07

Corner, Bristol City. Conceded by Ben Pringle.

12:34

Foul by Joe Skarz (Rotherham United).

12:34

Scott Wagstaff (Bristol City) wins a free kick in the defensive half.

11:55

Corner, Rotherham United. Conceded by Derrick Williams.

8:40

James Tavernier (Rotherham United) wins a free kick in the defensive half.

8:40

Foul by Wade Elliott (Bristol City).

1:35 Goal scored

Goal! Goal! Rotherham United 1, Bristol City 0. James Tavernier (Rotherham United) right footed shot from outside the box to the top left corner.

0:29

Foul by Greg Cunningham (Bristol City).

0:29

Nicky Adams (Rotherham United) wins a free kick in the defensive half.

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers