Rotherham United left it late to beat Stevenage and keep their League One promotion challenge on track.

United toiled against stubborn visitors but found a breakthrough when a loose ball ran to Mark Bradley whose low cross was converted by Wes Thomas amid offside claims.

Boro equalised with four minutes left, with Francois Zoko scoring from Jimmy Smith's corner.

But the Millers hit back to win it thanks to Lee Frecklington's low shot.

VIEW FROM THE CHANGING ROOM

Rotherham boss Steve Evans told BBC Radio Sheffield:

"That was a tough day. I told our guys it would be tough and it was.

"The one thing in our dressing room is resilience and they'll run until they've got nothing left.

"It's just pleasing. I think it's equally as good as a win we've had all season."

Stevenage boss Graham Westley told BBC Three Counties Radio:

"I feel for the lads, I think they put a lot of work in this afternoon, they spent themselves on the pitch, played some really good stuff, and on chances I think they were in the ascendency.

"We were devastated not to get the decision (for Rotherham's second goal). We're not going to look for excuses for ourselves but the goalkeeper's got the ball in his hands, Revell makes no contact with the ball, a lot of contact with our goalkeeper and the ball runs loose: 99 times out 100 I think you'd see a free-kick in that situation.

"I thought our lads were terrific. They took the game to them, they kept their focus and a sense of purpose.

"A little bit of naivety probably crept in after the equaliser. Deano in the middle of the park, trying to roll his foot over the ball and drag it one way when you think, 'look, we've just got ourselves level, let's keep the ball in good areas at that stage'.

"But that's part of the learning process, young players will only grow stronger as long as they're allowed to make those mistakes."

Lineup, Bookings (2) & Substitutions (6)

Rotherham United

  • 21 Collin
  • 14 Bradley
  • 27 Tavernier Booked
  • 36 Smallwood
  • 04 Arnason
  • 05 Davis (Addison - 71' )
  • 22 Agard
  • 08 Frecklington
  • 26 Thomas (Adams - 79' )
  • 09 Revell (Vuckic - 71' )
  • 18 Pringle

Substitutes

  • 01 Shearer
  • 03 Skarz
  • 10 O'Connor
  • 25 Addison
  • 28 Vuckic
  • 35 Hitchcock
  • 37 Adams

Stevenage

  • 16 Day
  • 11 Akins
  • 15 Freeman
  • 29 Hartley
  • 08 Mousinho
  • 05 Ashton Booked (Burrow - 82' )
  • 14 Heslop
  • 20 Smith
  • 07 Morais (Parrett - 69' )
  • 12 Zoko
  • 09 Charles (Deacon - 68' )

Substitutes

  • 01 Arnold
  • 02 Wedgbury
  • 06 Jones
  • 10 Burrow
  • 13 Parrett
  • 28 N'Guessan
  • 34 Deacon
Ref: Scott Mathieson
Att: 7,393

Match Stats

Shots

9 10

On target

5 4

Corners

2 9

Fouls

12 17

Live Text Commentary

Full time

Full Time Match ends, Rotherham United 2, Stevenage 1.

90:00 +7:01 Full time

Full Time Second Half ends, Rotherham United 2, Stevenage 1.

90:00 +6:21

Foul by Francois Zoko (Stevenage).

90:00 +6:21

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

90:00 +4:52

Luke Freeman (Stevenage) wins a free kick in the defensive half.

90:00 +4:52

Foul by James Tavernier (Rotherham United).

90:00 +1:17

Hand ball by Francois Zoko (Stevenage).

87:43 Goal scored

Goal! Goal! Rotherham United 2, Stevenage 1. Lee Frecklington (Rotherham United) right footed shot from outside the box to the bottom right corner. Assisted by Haris Vuckic.

85:56 Goal scored

Goal! Goal! Rotherham United 1, Stevenage 1. Francois Zoko (Stevenage) right footed shot from the left side of the six yard box to the top right corner. Assisted by Lucas Akins.

85:30

Corner, Stevenage. Conceded by James Tavernier.

81:51

Foul by Francois Zoko (Stevenage).

81:51

Mark Bradley (Rotherham United) wins a free kick in the attacking half.

81:05 Substitution

Substitution Substitution, Stevenage. Jordan Burrow replaces Jon Ashton.

80:07

Corner, Stevenage. Conceded by Miles Addison.

79:34

Corner, Stevenage. Conceded by Kári Arnason.

78:53 Substitution

Substitution Substitution, Rotherham United. Nicky Adams replaces Wes Thomas.

78:14

Foul by Francois Zoko (Stevenage).

78:14

Mark Bradley (Rotherham United) wins a free kick in the defensive half.

77:02

Corner, Stevenage. Conceded by Kári Arnason.

74:24 Booking

Booking Jon Ashton (Stevenage) is shown the yellow card.

74:18

Foul by Jon Ashton (Stevenage).

74:18

Wes Thomas (Rotherham United) wins a free kick in the defensive half.

73:48 Booking

Booking James Tavernier (Rotherham United) is shown the yellow card.

73:42

Roarie Deacon (Stevenage) wins a free kick in the attacking half.

73:42

Foul by James Tavernier (Rotherham United).

73:00

Miles Addison (Rotherham United) wins a free kick in the attacking half.

72:58

Foul by Roarie Deacon (Stevenage).

72:25

Corner, Stevenage. Conceded by Kieran Agard.

70:48 Substitution

Substitution Substitution, Rotherham United. Haris Vuckic replaces Alex Revell.

70:12 Substitution

Substitution Substitution, Rotherham United. Miles Addison replaces Claude Davis.

68:37 Substitution

Substitution Substitution, Stevenage. Dean Parrett replaces Filipe Morais.

67:19 Substitution

Substitution Substitution, Stevenage. Roarie Deacon replaces Darius Charles.

64:47

Attempt missed. Alex Revell (Rotherham United) right footed shot from the centre of the box misses to the right.

62:25

Attempt missed. Wes Thomas (Rotherham United) header from the right side of the box is high and wide to the right.

60:07

Simon Heslop (Stevenage) wins a free kick on the left wing.

60:07

Foul by James Tavernier (Rotherham United).

59:27

Attempt missed. Luke Freeman (Stevenage) left footed shot from the centre of the box is close, but misses to the left.

57:26

Foul by Jon Ashton (Stevenage).

57:26

Kieran Agard (Rotherham United) wins a free kick on the right wing.

54:47

Foul by Darius Charles (Stevenage).

54:47

Richard Smallwood (Rotherham United) wins a free kick in the attacking half.

54:26

Attempt saved. Alex Revell (Rotherham United) right footed shot from the centre of the box is saved in the bottom left corner.

51:51

Corner, Stevenage. Conceded by Kári Arnason.

51:38

Attempt missed. Simon Heslop (Stevenage) right footed shot from outside the box is close, but misses to the left.

48:35

Jon Ashton (Stevenage) wins a free kick in the attacking half.

48:35

Foul by Alex Revell (Rotherham United).

47:45

Attempt missed. Luke Freeman (Stevenage) left footed shot from outside the box is close, but misses to the left.

46:38

Corner, Stevenage. Conceded by Kári Arnason.

45:26

Attempt missed. Francois Zoko (Stevenage) right footed shot from the left side of the six yard box is close, but misses to the left.

45:00

Second Half begins Rotherham United 1, Stevenage 0.

45:00 +6:49 Half time

Half Time First Half ends, Rotherham United 1, Stevenage 0.

45:00 +1:04

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

45:00 +0:32

Foul by John Mousinho (Stevenage).

45:00 +0:32

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

44:02

Attempt missed. Peter Hartley (Stevenage) header from very close range is too high.

43:40

Attempt saved. Peter Hartley (Stevenage) header from very close range is saved in the top centre of the goal.

43:18

Luke Freeman (Stevenage) wins a free kick in the defensive half.

43:18

Foul by Mark Bradley (Rotherham United).

41:00 Goal scored

Goal! Goal! Rotherham United 1, Stevenage 0. Wes Thomas (Rotherham United) right footed shot from the left side of the six yard box to the centre of the goal.

37:48

Foul by John Mousinho (Stevenage).

37:48

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

37:20

Hand ball by Luke Freeman (Stevenage).

34:50

Corner, Stevenage. Conceded by Claude Davis.

34:33

Attempt blocked. Luke Freeman (Stevenage) right footed shot from the left side of the six yard box is blocked.

33:52

Foul by Lucas Akins (Stevenage).

33:52

Claude Davis (Rotherham United) wins a free kick in the attacking half.

33:19

Corner, Stevenage. Conceded by Kári Arnason.

31:48

Attempt saved. Francois Zoko (Stevenage) right footed shot from the centre of the box is saved in the centre of the goal.

29:52

Foul by Lucas Akins (Stevenage).

29:52

Wes Thomas (Rotherham United) wins a free kick in the defensive half.

28:49 Booking

Booking Kieran Agard (Rotherham United) is shown the yellow card.

28:39

Jimmy Smith (Stevenage) wins a free kick on the right wing.

28:39

Foul by Lee Frecklington (Rotherham United).

26:50

Attempt missed. Alex Revell (Rotherham United) right footed shot from outside the box misses to the left.

25:59

Hand ball by Lee Frecklington (Rotherham United).

25:00

Corner, Rotherham United. Conceded by John Mousinho.

24:05

Foul by Luke Freeman (Stevenage).

24:05

Kieran Agard (Rotherham United) wins a free kick on the left wing.

21:22

Corner, Rotherham United. Conceded by Chris Day.

21:00

Attempt saved. Alex Revell (Rotherham United) right footed shot from the left side of the six yard box is saved in the top right corner.

19:00

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

18:57

Foul by John Mousinho (Stevenage).

18:12

Jimmy Smith (Stevenage) wins a free kick in the attacking half.

18:12

Foul by Alex Revell (Rotherham United).

17:59

Attempt saved. Francois Zoko (Stevenage) header from very close range is saved in the top centre of the goal.

14:05

Simon Heslop (Stevenage) wins a free kick in the defensive half.

14:05

Foul by Lee Frecklington (Rotherham United).

10:53

Foul by Lee Frecklington (Rotherham United).

10:53

Darius Charles (Stevenage) wins a free kick in the attacking half.

9:03

Foul by Kári Arnason (Rotherham United).

9:03

Darius Charles (Stevenage) wins a free kick in the defensive half.

7:42

Claude Davis (Rotherham United) wins a free kick in the attacking half.

7:42

Foul by Darius Charles (Stevenage).

7:04

Foul by Kieran Agard (Rotherham United).

7:04

Peter Hartley (Stevenage) wins a free kick in the attacking half.

2:02

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

1:42

Richard Smallwood (Rotherham United) wins a free kick in the attacking half.

1:42

Foul by Filipe Morais (Stevenage).

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers