Middlesbrough fired two goals in seven first half minutes and then frustrated the Royals who found no answer to their opponents this afternoon, never finding their fluid best and dropping points as a result.
Five minutes into the game and Alfa Semedo beat his man to dart into space down the left flank. He aimed a low ball into the middle but it bobbled between Joao and Olise in the middle and Boro could clear.
Soon after, Reading broke down the other wing. Semedo found Olise who cut inside and teed up Rinomhota for the shot from the edge of the box. However, the midfielder dragged his effort inches wide of Bettinelli's dive and the left upright.
Reading were looking to create opportunities at every opportunity and Semedo won a corner that Olise swung in. Joao had to bend his neck to get his head to it but couldn't keep his effort down and the Boro keeper watched it float over his crossbar.
Against the run of play though, the visitors took the lead. Laurent was penalised for what looked like a good tackle and a McNair free kick from deep was floated into Fry. He nodded the ball across the six yard box where Ashley Fletcher turnED it home from close range.
Ejaria nearly levelled four minutes later. A nice move involving Joao and LAurent saw the ball toed into the feet of Ejaria, who found a yard to pull the trigger but his effort fizzed just wide of the post once more.
And instead it was 2-0. A run across the box saw the ball teed up for Bola on the edge of the box and a sweet strike whistled through a crowded Reading box and past Rafael to nestle inside the top left corner.
McIntyre got his head to an Olise corner but couldn't direct it goalwards as the Royals looked for a goal to get them back in the game.
Middlesbrough were frustrating Reading, taking the momentum out of it at every opportunity and defending their lead well and in numbers. And they nearly got a third on the stroke of half-time when Ejaria was dispossessed and Howson broke, sliding the ball into the path of McNair in a shooting position. Rafael was down well to his left to save and he leapt on the loose ball before a red shirt could pounce.
Reading had it all to do in the second half.
Half-time: Reading 0-2 Middlesbrough
Reading made a double change at the interval - Esteves and Gibson replacing Richards and Semedo. And Esteves won a free kick on the corner of the box which Olise whipped in - Joao looked to glance it goalwards but a Boro head deflected it behind for a corner.
Boro broke almost to good effect from that cleared corner, Duncan Watmore scampering into acres of space and Rafael in two minds as to whether to come racing out of his area to clear the danger. He rightly opted to stay put an and collected the ball after a loose touch from Watmore.
Middlesbrough were dealing well with anything Reading managed to throw at them and looked comfortable in their two-goal lead, looking to catch their hosts on the counter attack an makde sure of the win.
But two right-backs combined to nearly pull one back for the Royals. Yiadom did well to keep the ball in down the right and collected a one-two from Esteves, only to stab his shot just wide of the post with the outside of his right boot.
Olise had the ball in the back of the net when he latched onto a lovely ball from Ejaria and rounded Bettinelli to score - but the offside flag ruled it out and Reading's frustrations continued.
The Royals continued to look for an opening - Laurent bustling into the box but his show was charged down, then Yiadom from the right side scurried into the box but was crowded off the ball. But nothing was quite coming off.
Fletcher tested Rafael on the counter attack at the other end, the Brazilian equal to his right-footed drive.
Having scored a great goal at Bristol City in the week, Morrison strode forward again as we entered the final ten minutes, and he firmly fired a right-footed effort at goal that Bettinelli needed to parry away.
Aluko was brought on with four minutes left in a final throw of the dice and Morrison headed over from a free kick delivered by the substitute, but there was no way through a well-organised Boro side who gained ground on those above them to reignite their race for a play-off place.
Full-time: Reading 0-2 Middlesbrough
Reading: Rafael, Yiadom, Richards (Gibson HT), Morrison (c), McIntyre, Rinomhota, Laurent, Semedo (Esteves HT), Ejaria (Puscas 78), Olise (Aluko 86), Joao.
Unused subs: Southwood, Moore, Holmes, Tetek, Baldock.
Yellow: Richards, Rinomhota
Middlesbrough: Bettinelli, Watmore (Johnson 66), Dijksteel, McNair, Howson (c), Fry, Fisher (Mendez-Laing 78), Fletcher, Morsy, Kebano (Saville 78), Bola.
Unused subs: Archer, Spence, Assombalonga, Akpom, Coulson, Hall.
Yellow: Howson, Fletcher.
Scorer: Fletcher 22, Bola 29