David Wheater's 63rd-minute own goal cancelled out Chris Killen's second-half header and ensured the Teessiders would extend their winless run to four matches.
Chances were few and far between during a lifeless first half, but Brad Jones justified his surprise recall in favour of Danny Coyne with a smart 30th-minute stop.
Jobi McAnuff crossed from the left flank, and Jones hurled himself to his left to claw away Shane Long's close-range header.
Boro created little of note before the break, but they didn't have to wait long to break the deadlock after the interval.
Only 75 seconds had elapsed when Justin Hoyte slung over a deep cross from the right, and Killen held off the attentions of Matt Mills to loop a ten-yard header past Adam Federici.
Barry Robson tested Federici again with a long-range effort on the hour mark, but Reading were level three minutes later as Wheater scored in his own net.
Jimmy Kebe surged past Emanuel Pogatetz to reach the goalline, and Wheater stabbed the winger's driven low cross past a helpless Jones from inside the six-yard box.
MIDDLESBROUGH (4-4-2): Jones; Hoyte (Naughton 66), Wheater, Grounds, Pogatetz; Robson, O'Neil, Arca, Franks (Emnes 87); McDonald (Lita 74), Killen.
(not used): Coyne (gk), Taylor, Riggott, Miller.
READING (4-5-1): Federici; Griffin, Mills, Ingimarsson (Khizanishvili 90), Bertrand; Kebe, Tabb, Sigurdsson, Howard, McAnuff; Long.
Subs (not used): Harper (gk), Gunnarsson, Matejovsky, Robson-Kanu, Church, Rasiak.
Source: Northern Echo
Source: Northern Echo