Middlesbrough kept their slim play-off hopes alive and dented Nottingham Forest's promotion prospects with a narrow win at the Riverside Stadium.
Mustapha Carayol latched on to Josh McEachran's pass before thumping a shot past Karl Darlow just before the break.
Scott McDonald went close to a second but failed to convert a Darlow error.
Forest drop to eighth in the Championship table, a point off the top six, while Tony Mowbray's Boro are six points adrift of the play-offs.
The visitors made the brighter start, with Lewis McGugan at the heart of their early pressure, his cross finding Simon Cox, whose header was tipped over by Jason Steele.
Boro responded against the run of play when McDonald smashed the ball goalwards from 25 yards out, forcing a fine save from Darlow.
Forest continued to threaten, Billy Sharp's header arrowing just wide from Cox's right-wing delivery.
But it was Boro who made the breakthrough when Carayol struck before half-time with the Gambian finishing from McEachran's pass for his fourth goal of the season.
Darlow almost conceded a second when he gave possession away to McDonald on the edge of the box, but the Australian was unable to take advantage as defenders scrambled back to cover.
The home side were forced deeper throughout the second half but when Richard Smallwood broke through in the 77th minute and found an unmarked Faris Haroun, Boro should have had their second. But the Belgian substitute somehow clipped over an open goalmouth.
Radoslaw Majewski drove a shot over the bar in added time but Boro stayed calm to take the points and continue Forest's 20-year winless run on Teesside.
Middlesbrough boss Tony Mowbray:
"I would be lying if I said it wasn't a relief, we could have had more if we had picked a better pass, been more clinical.
"We were resolute, we had a young midfield in Richie Smallwood and Josh McEachran, and we got the job done against a very powerful Nottingham Forest side.
"Last year we lacked someone like Mustapha Carayol, who could go past people with pace, and I was just sorry that he was out for five months earlier in the season.
"He had had to learn the physicality of the game but is getting there now."
Nottingham Forest manager Billy Davies:
"We started well as we have in a number of games, I thought we had a couple of very good chances. Decision-making at time was careless, they scored against run of play.
"After that it was jittery, chasing things, we had to put strikers on to chase the game.
"We're only one point behind the play-off places so it goes down to the last game. We've got an exciting last three games.
"We don't have a magic wand and there's no margin for error. We want to keep this run going until the last game.
"Don't believe in momentum, believe in Lady Luck, injuries, refereeing decisions but not momentum."
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The match has reached full-time.90:00 +4:33
Shot from just outside the area by Radoslaw Majewski goes over the bar.90:00 +4:07
The assistant referee signals for offside against Scott McDonald. Karl Darlow takes the indirect free kick.90:00 +1:37
Jason Steele restarts play with the free kick.90:00 +1:37 Substitution
Substitution Adam Reach comes on in place of Kieron Dyer.90:00 +1:37 Booking
Booking Dexter Blackstock booked for unsporting behaviour.90:00 +1:21
Nicky Bailey fouled by Dexter Blackstock, the ref awards a free kick.89:33
Kieron Dyer takes a short corner.89:04
Foul by Dexter Blackstock on Mustapha Carayol, free kick awarded. Free kick taken by Richard Smallwood.87:59
Lewis McGugan gives away a free kick for an unfair challenge on Andrew Halliday. Free kick taken by Jason Steele.87:05
Chris Cohen produces a right-footed shot from deep inside the penalty area which goes wide of the right-hand post.85:37
A cross is delivered by Henri Lansbury.85:09
Greg Halford produces a cross, Rhys Williams makes a clearance.83:49
Effort from inside the area by Mustapha Carayol misses to the left of the goal.82:31
Unfair challenge on Andre Bikey by Dexter Blackstock results in a free kick. Jason Steele takes the direct free kick.81:25
Kieron Dyer takes a inswinging corner from the left by-line to the near post, Mustapha Carayol produces a header from the edge of the box and misses to the left of the goal.78:27
Henri Lansbury has an effort at goal from 18 yards. Justin Hoyte gets a block in. Corner taken by Lewis McGugan from the left by-line played to the near post, Justin Hoyte makes a clearance.77:07 Substitution
Substitution Dexter Blackstock comes on in place of Andy Reid.76:09
Effort from the edge of the box by Faris Haroun goes wide of the right-hand upright.74:44
Direct free kick taken by Karl Darlow.
Booking Richard Smallwood goes into the book for unsporting behaviour.74:22
Richard Smallwood gives away a free kick for an unfair challenge on Simon Cox.73:44
Faris Haroun takes a shot. Elliott Ward gets a block in.73:34
Centre by Andrew Halliday.73:00
Corner taken by Kieron Dyer, clearance by Greg Halford.72:12
Outswinging corner taken by Kieron Dyer from the right by-line, Lewis McGugan manages to make a clearance.71:22
Free kick awarded for a foul by Gonzalo Jara Reyes on Mustapha Carayol. Kieron Dyer crosses the ball in from the free kick, clearance by Greg Halford.69:46 Substitution
Substitution Sammy Ameobi leaves the field to be replaced by Faris Haroun.69:24 Substitution
Substitution Sam Hutchinson goes off and Gonzalo Jara Reyes comes on.68:07
Radoslaw Majewski takes a shot. Blocked by Andrew Halliday. Richard Smallwood delivers the ball.65:18
Sammy Ameobi is ruled offside. Indirect free kick taken by Karl Darlow.64:40
Nicky Bailey fouled by Sam Hutchinson, the ref awards a free kick. Free kick taken by Jason Steele.64:18
Lewis McGugan takes a shot. Andre Bikey gets a block in.61:56
Indirect free kick taken by Jason Steele.61:56 Substitution
Substitution Nicky Bailey is brought on as a substitute for Josh McEachran.61:56
Simon Cox is flagged offside by the assistant referee.59:58
The ball is sent over by Chris Cohen, Andre Bikey manages to make a clearance.57:49
Jason Steele takes the direct free kick.57:49 Substitution
Substitution Adlene Guedioura leaves the field to be replaced by Radoslaw Majewski.57:49
Unfair challenge on Josh McEachran by Greg Halford results in a free kick.55:45
The referee gives a free kick against Andrew Halliday for handball. Adlene Guedioura takes the free kick.51:30
Foul by Andre Bikey on Andy Reid, free kick awarded. Andy Reid crosses the ball in from the free kick.50:26
Kieron Dyer takes a shot. Blocked by Greg Halford. Billy Sharp takes a shot. Jason Steele makes a save.48:58
The referee blows for offside against Kieron Dyer. Free kick taken by Chris Cohen.47:30
Foul by Josh McEachran on Andy Reid, free kick awarded. Direct free kick taken by Andy Reid.46:09
Handball decision goes against Adlene Guedioura. Josh McEachran takes the direct free kick.45:01
The referee blows his whistle to start the second half.45:00 +2:30 Half time
Half Time The referee blows for half time.45:00 +1:50
Sammy Ameobi sends in a cross, clearance by Sam Hutchinson. Kieron Dyer takes a floated corner. A cross is delivered by Rhys Williams.45:00 +1:01
Mustapha Carayol takes a shot. Karl Darlow makes a save.43:45
Billy Sharp fouled by Andre Bikey, the ref awards a free kick. Strike on goal comes in from Lewis McGugan from the free kick, save made by Jason Steele.41:37
Assist on the goal came from Josh McEachran.41:37 Goal scored
Goal! - Mustapha Carayol - Middlesbro 1 - 0 Nott'm For Mustapha Carayol finds the back of the net with a goal from the edge of the penalty box to the bottom right corner of the goal. Middlesbrough 1-0 Nottm Forest.39:29
Shot from just outside the area by Greg Halford misses to the left of the target.38:56
Unfair challenge on Henri Lansbury by Richard Smallwood results in a free kick. Free kick taken by Greg Halford.37:36
The ball is crossed by Kieron Dyer, comfortable save by Karl Darlow.36:53
The ball is delivered by Simon Cox, Greg Halford produces a header from inside the area that goes over the bar.35:22
Simon Cox delivers the ball, Billy Sharp has a headed effort at goal from deep inside the area missing to the right of the goal. Free kick awarded for a foul by Rhys Williams on Lewis McGugan. Chris Cohen restarts play with the free kick.35:08
Kieron Dyer is ruled offside. Sam Hutchinson takes the free kick.33:53
Centre by Mustapha Carayol, Elliott Ward makes a clearance.31:20
Scott McDonald is ruled offside. Karl Darlow restarts play with the free kick.28:34
Effort from outside the area by Lewis McGugan goes wide right of the goal.27:56
Sammy Ameobi takes a shot. Adlene Guedioura gets a block in.27:41
The ball is swung over by Mustapha Carayol, clearance made by Andy Reid.25:58
The ball is swung over by Chris Cohen, Henri Lansbury takes a shot. Andrew Halliday gets a block in. Andy Reid takes a inswinging corner to the near post, Sammy Ameobi makes a clearance. Effort on goal by Lewis McGugan from just outside the area goes harmlessly over the target.24:58
Free kick awarded for an unfair challenge on Josh McEachran by Adlene Guedioura. Direct free kick taken by Josh McEachran.24:11
Chris Cohen sends in a cross, Rhys Williams manages to make a clearance. A cross is delivered by Sam Hutchinson, clearance made by Rhys Williams.21:31
Mustapha Carayol delivers the ball.19:04
Unfair challenge on Kieron Dyer by Lewis McGugan results in a free kick. Richard Smallwood restarts play with the free kick.17:39
The ball is sent over by Lewis McGugan, Andre Bikey manages to make a clearance.16:53
Lewis McGugan has an effort at goal from outside the box which goes wide right of the target.12:40
Scott McDonald takes a shot. Save made by Karl Darlow. Short corner worked by Kieron Dyer. Long range effort by Andre Bikey goes wide right of the net.10:44
Lewis McGugan takes the direct free kick.10:44 Booking
Booking Caution for Rhys Williams.10:24
Andy Reid fouled by Rhys Williams, the ref awards a free kick.9:02
Billy Sharp sends in a cross, Rhys Williams makes a clearance.8:04
Centre by Justin Hoyte.6:31
Corner taken by Lewis McGugan, Richard Smallwood makes a clearance.6:03
Corner taken right-footed by Lewis McGugan, Simon Cox takes a shot. Save made by Jason Steele.3:19
Kieron Dyer gives away a free kick for an unfair challenge on Adlene Guedioura. Direct strike on goal from the free kick comes in from Lewis McGugan.0:43
Lewis McGugan takes a shot. Blocked by Sammy Ameobi. Inswinging corner taken by Lewis McGugan, Justin Hoyte makes a clearance. Lewis McGugan delivers the ball, Headed effort from deep inside the area by Elliott Ward misses to the right of the target.0:00
The referee gets the match started.
Live data and text provided by our data suppliers