Match ends, Middlesbrough 0, Reading 0.
Reading's 100% winning start to the Championship season ended with a goalless draw at Middlesbrough.
Michael Olise forced the only save of a quiet first half when a rare moment of quality produced an opening, Boro keeper Marcus Bettinelli making a comfortable low stop.
Jonny Howson had a second-half effort ruled out for offside and then fired in a powerful shot which forced captain Liam Moore to clear off the line as Boro finished strongly.
But Ovie Ejaria almost grabbed a late winner for the Royals, sending a shot just past the far post.
Despite the dropped points, Reading remained second, separated from leaders Bristol City by goals scored after the Robins were held to a 2-2 draw at Barnsley.
Boro have become a bogey side for the Royals with the Riverside stalemate ending a wretched run of seven successive defeats against the Teesiders.
Neil Warnock's side started on the front foot with Howson's deflected looping shot forcing keeper Rafael Cabral to fingertip the ball over the bar, but the Royals grew into a tight first half.
Leading scorer Lucas Joao, returning from a shoulder injury, sent a strike just wide from 25 yards, and Ejaria flashed a shot past the far post from 20 yards as clear chances remained at a premium after the break.
Boro, who have won just once at home since Boxing Day, dropped to 14th.
Middlesbrough manager Neil Warnock told BBC Tees:
"I'm a little bit disappointed, we've looked at the goal and it's onside Jonny Howson's goal.
"The linesman is in a great position, he's looking straight across and I think he just puts his flag up because he's not sure. Even their lads were telling us it was onside, so it's disappointing as it was always going to be one goal.
"I thought we played ever so well against a side full of confidence, having won four on the trot and to match them - they had one shot on target - it's a good performance."
Reading boss Veljko Paunovic told BBC Radio Berkshire:
"It was a very good performance, very solid defensively again, the spirit was fantastic and we pushed hard to the end.
"We were unlucky this time in scoring, but we have to acknowledge the good work our opponents put in today, especially defensively, it was probably physically the hardest match we have played so far.
"During the break we worked very hard on our fitness and you could see that today, we matched their intensity which was well done, and we also improved our depth in the squad."
- 17McNairBooked at 80mins
- 7TavernierSubstituted forSpenceat 82'minutes
- 5MorsyBooked at 75mins
- 9AssombalongaSubstituted forJohnsonat 45'minutes
- 33Cabral Barbosa
- 29HolmesBooked at 76mins
- 6MooreBooked at 47mins
- 3RichardsBooked at 72mins
- 11MeiteSubstituted forPuscasat 76'minutes
- 7OliseSubstituted forAlukoat 81'minutes
- 18Lucas JoãoSubstituted forSemedoat 69'minutes
- 2Pontes Esteves
- Darren Bond
- Shots on Target
Second Half ends, Middlesbrough 0, Reading 0.
Foul by Liam Moore (Reading).
Chuba Akpom (Middlesbrough) wins a free kick on the left wing.
Josh Laurent (Reading) wins a free kick in the defensive half.
Foul by Djed Spence (Middlesbrough).
Substitution, Middlesbrough. Djed Spence replaces Marcus Tavernier.
Foul by Ovie Ejaria (Reading).
Anfernee Dijksteel (Middlesbrough) wins a free kick in the defensive half.
Substitution, Reading. Sone Aluko replaces Michael Olise.
Attempt missed. Ovie Ejaria (Reading) right footed shot from outside the box is close, but misses to the right. Assisted by Andy Rinomhota.
Patrick McNair (Middlesbrough) is shown the yellow card for a bad foul.
Andy Rinomhota (Reading) wins a free kick on the right wing.
Foul by Patrick McNair (Middlesbrough).
Attempt blocked. Jonny Howson (Middlesbrough) right footed shot from the centre of the box is blocked.
Substitution, Reading. George Puscas replaces Yakou Meite.
Thomas Holmes (Reading) is shown the yellow card for a bad foul.
Foul by Thomas Holmes (Reading).
Marvin Johnson (Middlesbrough) wins a free kick in the defensive half.
Sam Morsy (Middlesbrough) is shown the yellow card for a bad foul.