Josh Vela fired Bolton in front from eight yards after Emile Heskey laid Dean Moxey's long throw into his path.
But Boro equalised when Rhodes, who was about to be replaced by David Nugent, drilled home from close range.
Rhodes then headed in Middlesbrough's second stoppage-time winner this week from three yards.
Minutes earlier, Boro's big-money transfer deadline day signing from Blackburn had hit the post and headed wide from six yards as the Teessiders sought a winner, while substitute Gaston Ramirez also scooped a shot over from close range.
Relive Middlesbrough's win at Bolton
But Rhodes was in the right place at the right time to nod in Nugent's cross in the first minute of injury time and leave Boro two points clear at the top after promotion rivals Burnley, who they face on Tuesday, won 2-1 at Birmingham.
Boro, who have now won six successive games, also scored an injury-time winner to beat Reading in midweek and this late show secured only their second victory at Bolton's current home.
Middlesbrough face promotion rivals Burnley and Brighton in their closing four games and, as such, have their fate in their own hands as they bid to return to the Premier League for the first time since 2009.
Aitor Karanka's side dominated the first half in terms of chances as Stewart Downing hit the bar from 25 yards, while Adam Forshaw, Daniel Ayala, Albert Adomah and Ritchie de Laet all failed to hit to target.
Mark Davies' backheel forced Boro keeper Dimi Konstantopoulos into a save from Bolton's best first-half opening.
Wanderers looked set for only their fifth win of the season after Vela put them in front but Rhodes had the final say to the delight of Boro's 4,302 travelling fans.
Middlesbrough boss Aitor Karanka:
"I told him [Rhodes] after the game that a goalscorer can't forget to score goals in two months.
"Always one day it would arrive that he would score goals and it was today - two important goals.
"I don't think it's been easy for him. He's not a strong character, you can see it in his face. The reason I am pleased for him is because sometimes when you do your best and you're unlucky you are going down. He was always trusting himself.
"Today, the most important day, he arrived and he was there to help the team."
Bolton interim manager Jimmy Phillips:
"That's [the level of performance] got to be the case from now until the end of the season.
"We encourage players to get on the ball, show as much in possession as they could, to be confident with it, because our league fate has been decided but also retaining a real competitive edge and defensive shape.
"There's still areas to work on, definitely, hopefully if we can achieve better ball retention, become harder to beat and still work hard that will set the players up for next season for those that are going to be here."
Match ends, Bolton Wanderers 1, Middlesbrough 2.
Second Half ends, Bolton Wanderers 1, Middlesbrough 2.
Offside, Middlesbrough. Gastón Ramírez tries a through ball, but David Nugent is caught offside.
Gastón Ramírez (Middlesbrough) wins a free kick on the right wing.
Foul by Rob Holding (Bolton Wanderers).
Substitution, Middlesbrough. Tomas Kalas replaces Jordan Rhodes.
Goal!  Bolton Wanderers 1, Middlesbrough 2. Jordan Rhodes (Middlesbrough) header from very close range to the top left corner. Assisted by David Nugent with a cross.
Jordan Rhodes (Middlesbrough) hits the left post with a right footed shot from the right side of the six yard box. Assisted by David Nugent with a cross.
Substitution, Bolton Wanderers. Kaiyne Woolery replaces Josh Vela.
Attempt missed. Jordan Rhodes (Middlesbrough) header from the centre of the box is close, but misses to the left. Assisted by David Nugent with a headed pass following a corner.
Substitution, Middlesbrough. David Nugent replaces Stewart Downing.
Corner,  Middlesbrough. Conceded by Dean Moxey.
Attempt missed. Ritchie de Laet (Middlesbrough) header from the centre of the box is close, but misses to the right. Assisted by Adam Forshaw with a headed pass following a corner.
Corner,  Middlesbrough. Conceded by Darren Pratley.
Attempt blocked. Gastón Ramírez (Middlesbrough) left footed shot from outside the box is blocked.
Josh Vela (Bolton Wanderers) is shown the yellow card for a bad foul.
Gastón Ramírez (Middlesbrough) wins a free kick in the attacking half.
Foul by Josh Vela (Bolton Wanderers).
Attempt saved. Daniel Ayala (Middlesbrough) header from the centre of the box is saved in the top left corner. Assisted by Gastón Ramírez with a cross.
Corner,  Middlesbrough. Conceded by Mark Davies.
Attempt missed. Albert Adomah (Middlesbrough) header from the centre of the box misses to the left. Assisted by Stewart Downing with a cross.
Attempt blocked. Albert Adomah (Middlesbrough) right footed shot from the left side of the box is blocked. Assisted by Gastón Ramírez.
Ben Amos (Bolton Wanderers) is shown the yellow card.
Hand ball by Jordan Rhodes (Middlesbrough).
Attempt missed. Gastón Ramírez (Middlesbrough) right footed shot from very close range is close, but misses to the right. Assisted by Ritchie de Laet with a cross.
Corner,  Middlesbrough. Conceded by Niall Maher.
Attempt missed. Darren Pratley (Bolton Wanderers) header from the centre of the box misses to the left. Assisted by Josh Vela with a cross.
Foul by Ritchie de Laet (Middlesbrough).
Dean Moxey (Bolton Wanderers) wins a free kick on the left wing.
Goal!  Bolton Wanderers 1, Middlesbrough 1. Jordan Rhodes (Middlesbrough) right footed shot from the centre of the box to the bottom right corner.
Attempt blocked. Jordan Rhodes (Middlesbrough) header from the centre of the box is blocked. Assisted by Adam Forshaw with a cross.
Offside, Middlesbrough. Albert Adomah tries a through ball, but Jordan Rhodes is caught offside.
Substitution, Bolton Wanderers. Liam Trotter replaces Emile Heskey.
Corner,  Middlesbrough. Conceded by Dean Moxey.
Offside, Middlesbrough. Adam Clayton tries a through ball, but Daniel Ayala is caught offside.
Attempt blocked. Ritchie de Laet (Middlesbrough) left footed shot from the right side of the box is blocked.
Corner,  Middlesbrough. Conceded by David Wheater.
Mark Davies (Bolton Wanderers) is shown the yellow card for a bad foul.
George Friend (Middlesbrough) wins a free kick in the attacking half.
Foul by Mark Davies (Bolton Wanderers).
Jordan Rhodes scored twice, including an injury-time winner, as Championship leaders Middlesbrough came from behind to beat already-relegated Bolton.