A lively and keenly-contested opening saw both teams signal their intent.
It was Boro with the first chance. With eight minutes played Lewis Sirrell played a delightful ball just left of centre to release Mark Kitching and a low shot brought a save from Daniel Lincoln.
Boro saw more of the ball in the opening quarter-of-an-hour. However, it was the visitors who had the game's next chance with Tariqe Fosu wriggling his way into the Boro box and hitting David Atkinson on the back with a shot.
The opening goal came with 25 minutes played. A cross from the right caused problems in the Boro box and Liam Kelly, the quickest to react, rose to head home from around seven yards.
That lifted the visitors and a good start faded for a while as Reading lifted their game and nearly added a second when Gozie Ugwu set up Fosu who had made a good run inside the area, but Joe Fryer produced a decent save.
Off-target shots from Atkinson and Robbie Tinkler were never going to trouble Lincoln and it was Reading who all but created another chance when Aaron Kuhl crossed low and hard and a deflection saw the ball squirm not far off target.
Half-time: Boro U21s 0 Reading U21s 1
Boro needed to be better in the second half and they were.
Good work from Callum Cooke set up a half-chance, a wicked free-kick from Cameron Park way out on the right just needed a touch which it didn't get and Lincoln was forced into a decent save to turn away a good strike from Sirrell.
In between that flurry, Reading missed a great chance to go two up when Jack Stacey worked his way into a scoring position but miscued horribly.
The second goal did, though, go to the visitors on 58 minutes.
Sean Long was given far too much time on the right to cross deep into the penalty area where Aaron Tshibola controlled and cracked home from the edge of the six-yard box.
It got worse for Boro midway through the half as Gozie Ugwu struck low from 22 yards with a shot that flew past Fryer to his right.
A flurry of substitutions saw four changes in six minutes, two per side, and it was Boro who were next to threaten with Cooke bringing a save away to his right from Lincoln, who needed a second attempt to grab a low shot from 20 yards.
Middlesbrough: Fryer; B Halliday, Atkinson (Capt), Jackson, Fenwick, Tinkler (Meling 80), Maloney (Burn 71), Kitching, Sirrell, Cooke, Park (Fowler 67). Subs: Dawson (gk); Weledji.
Reading: Lincoln; Long, Griffin, Tshibola (Murombedzi 73), Cooper, Keown, Stacey (Owusu 79), Kuhl (Capt.), Ugwu (Cardwell 68), Kellu, Fosu. Subs: Ward, Vastsuk.
Referee: Glen Hart (no cards shown).