Match ends, Middlesbrough 2, Reading 1.
Play-off chasing Middlesbrough held on to beat struggling Reading and raise the pressure on Royals boss Jaap Stam.
Adama Traore put the hosts ahead when he cut inside from the right and fired past Vito Mannone with his left foot.
Traore's powerful strike doubled the lead, but Chris Martin's shot pulled a goal back for Reading after the break.
Middlesbrough could have won by more, but Britt Assombalonga lifted a late penalty high and wide after Traore had been tripped by Dave Edwards.
Reading have now won only once in their past 11 league games, leaving last season's play-off finalists only four points above the relegation zone.
Martin's goal was his first since joining the club on loan from Derby on transfer deadline day, but it was one of only two shots on target for Stam's side.
Middlesbrough closed to within four points of the play-off places, extending their division-best record of 14 successive wins in games when they have scored first.
The result also saw the hosts claim a third consecutive victory against Reading for the first time in the club's history, while it was only the second win in nine attempts against the Royals for boss Tony Pulis.
Boro boss Tony Pulis told BBC Tees:
"We were desperate to take that monkey off our backs. We have played well in most games this year apart from taking chances in the final third.
"We missed a penalty, Patrick Bamford missed from six yards and Grant hit the inside of the post. We could easily have had four or five goals.
"Two-nil is always a tough scoreline as if the team you are playing against get one goal it gives them a lift psychologically.
"There is a quarter of a season to go and no-one is talking about us. There's no pressure on us."
Reading manager Jaap Stam told BBC Radio Berkshire:
"If you see how we conceded the two goals, by giving them away, it makes it hard to get back in the game.
"They played in a very physical way in the first half and it was not easy to defend at times.
"Chris gave us a certain belief to go forward but we had to be careful of them on the break. We could have got more out of it but unfortunately we didn't.
"Everybody finds the run frustrating and hard to take. The players are working hard but when you have the ball you have to attack and keep taking the initiative."
- 3FriendBooked at 73mins
- 19DowningSubstituted forCranieat 90+1'minutes
- 39GestedeSubstituted forAssombalongaat 79'minutes
- 11BamfordSubstituted forClaytonat 66'minutesBooked at 88mins
- 2GunterBooked at 83mins
- 19BacunaBooked at 87mins
- 4van den BergBooked at 60mins
- 38KellySubstituted forClementat 63'minutes
- 12McClearySubstituted forKermorgantat 74'minutes
- 23BödvarssonSubstituted forMartinat 63'minutes
- David Coote
- Shots on Target
Second Half ends, Middlesbrough 2, Reading 1.
Offside, Reading. Chris Gunter tries a through ball, but David Edwards is caught offside.
Offside, Middlesbrough. Adama Traoré tries a through ball, but Britt Assombalonga is caught offside.
Liam Moore (Reading) wins a free kick in the defensive half.
Foul by Britt Assombalonga (Middlesbrough).
Corner, Middlesbrough. Conceded by Tiago Ilori.
Attempt blocked. Britt Assombalonga (Middlesbrough) right footed shot from the left side of the box is blocked. Assisted by Jonny Howson.
Substitution, Middlesbrough. Martin Cranie replaces Stewart Downing.
Attempt blocked. Sone Aluko (Reading) left footed shot from outside the box is blocked. Assisted by Pelle Clement.
Adam Clayton (Middlesbrough) is shown the yellow card.
Leandro Bacuna (Reading) is shown the yellow card.
Leandro Bacuna (Reading) wins a free kick in the defensive half.
Foul by Adam Clayton (Middlesbrough).
Offside, Middlesbrough. Grant Leadbitter tries a through ball, but Adama Traoré is caught offside.
Penalty missed! Bad penalty by Britt Assombalonga (Middlesbrough) right footed shot is too high. Britt Assombalonga should be disappointed.
Penalty conceded by David Edwards (Reading) after a foul in the penalty area.
Penalty Middlesbrough. Adama Traoré draws a foul in the penalty area.
Chris Gunter (Reading) is shown the yellow card for a bad foul.
Foul by Chris Gunter (Reading).