Match ends, Bolton Wanderers 2, Rotherham United 1.
Bolton Wanderers lifted themselves off the bottom of the Championship thanks to midfielder Kaiyne Woolery's injury-time winner against Rotherham.
Jay Spearing gave the hosts an early lead when he half-volleyed home after the Millers failed to clear a corner.
Bolton's lead was cancelled out when Danny Ward cut the ball back to Chris Burke, who finished at the back post.
The Trotters regained the lead when Lee Camp saved from Mark Davies and Woolery tapped home his first league goal.
The result means that Bolton move off the bottom of the Championship table for the first time since November as they have risen a place to 23rd.
Meanwhile Rotherham have slipped a place to 22nd and fall into the relegation zone for the first time in eight games.
It sealed a fine afternoon for Neil Lennon's side, who were ahead after just 65 seconds thanks to Spearing's opener, and controlled much of the first half prior to Burke's leveller.
Woolery, 21, who made his first start for Bolton in their 2-2 draw with Wolves, replaced Wellington Silva with 81 minutes gone and gifted the hosts a vital win with his first goal in senior football.
Bolton manager Neil Lennon:
"It's a great win and a really important win and it keeps us in touch now with some difficult games to come.
"I'm delighted, I don't think we played particularly well. We have played better and lost games so I guess we were due one.
"That's seven points from nine and that's as much as anyone can have expected under the circumstances."
Rotherham manager Neil Redfearn:
"We were the best side but if you missed gilt-edged chances, it always leaves you open.
"It's a frustrating situation because we are playing well. I felt for them [the players] because they put a shift in and they deserved more than that.
"It's tough to take because we deserved to win."
- 21PratleySubstituted forDobbieat 84'minutes
- 22WellingtonSubstituted forWooleryat 81'minutes
- 19HeskeySubstituted forTrotterat 64'minutes
- 3MattockBooked at 62mins
- 14BurkeSubstituted forGreenat 69'minutes
- 22NewellBooked at 88mins
- 24ShinnieSubstituted forDerbyshireat 90+4'minutes
- 9WardSubstituted forClarke-Harrisat 76'minutes
- Stuart Attwell
- Shots on Target
Second Half ends, Bolton Wanderers 2, Rotherham United 1.
Substitution, Rotherham United. Matt Derbyshire replaces Andrew Shinnie.
Goal! Bolton Wanderers 2, Rotherham United 1. Kaiyne Woolery (Bolton Wanderers) right footed shot from the centre of the box to the bottom right corner.
Attempt saved. Mark Davies (Bolton Wanderers) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Liam Trotter.
Attempt missed. Rob Holding (Bolton Wanderers) header from the centre of the box is too high. Assisted by Liam Feeney with a cross following a corner.
Corner, Bolton Wanderers. Conceded by Kirk Broadfoot.
Offside, Bolton Wanderers. Mark Davies tries a through ball, but Kaiyne Woolery is caught offside.
Joe Newell (Rotherham United) is shown the yellow card for a bad foul.
Kaiyne Woolery (Bolton Wanderers) wins a free kick in the defensive half.
Foul by Joe Newell (Rotherham United).
Corner, Rotherham United. Conceded by Rob Holding.
Attempt blocked. Andrew Shinnie (Rotherham United) right footed shot from outside the box is blocked. Assisted by Joe Newell.
Attempt missed. Liam Feeney (Bolton Wanderers) right footed shot from long range on the left is high and wide to the right. Assisted by Kaiyne Woolery.
Substitution, Bolton Wanderers. Stephen Dobbie replaces Darren Pratley.
Foul by Jay Spearing (Bolton Wanderers).
Grant Ward (Rotherham United) wins a free kick on the right wing.
Attempt saved. Richard Wood (Rotherham United) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Jonson Clarke-Harris with a headed pass.
Corner, Rotherham United. Conceded by Dorian Dervite.
Attempt blocked. Andrew Shinnie (Rotherham United) right footed shot from the right side of the box is blocked. Assisted by Richard Smallwood with a cross.