Early Boro pressure turned into a goal with just three minutes played as Luke Williams drilled a stunning low shot into Joel Dixon's bottom right-hand corner from close on 30 yards.
A warm, still night was perfect for an open game and that's what was served up as Adam Mitchell crossed from deep out on the right, that was cleared and Jayson Leutwiler saved the follow-up.
Andy Halliday curled over before the impressive Duncan Whatmore had a shot saved.
Alejandro Gorrin saw an effort blocked as Sunderland, managed by Kevin Ball, who is in charge of the first team for this week's Capital One Cup tie, continued to try and force an equaliser.
If what had gone before had been open and entertaining, it was nothing compared to the last nine minutes of the half thar contained three goals, two penalties and a sending-off.
With 36 minutes played Mitchell crossed from the right, Adam Jackson appeared to control with a hand a penalty was given, Mikael Mandron sending Leutwiler the wrong way with a low and powerful shot the goalkeeper's left.
A well-worked move saw Jordan Jones and Williams combine to set up the latter but he was unbalanced when shooting off target,
Jones was to become the sacrifice as Jamie Clapham was forced into a change following the 39th-minute dismissal of former Sunderland Academy player Jonathan Burn.
He had been lucky to escape a yellow card a few minutes earlier but when Jackson underhit a pass to him across the penalty area he was committed to the challenge. Mandron got there ahead of him and was unceremoniously tipped up a few yards from the edge of the box.
The home side capitalised three minutes later when Liam Agnew unleashed a terrific shot from 20 yards that dipped over Leutwiler.
On the stroke of half-time Boro drew level when a deep cross from the right from Andre Bennett was handled by right-back Liam Marrs and Luke Williams confidently despatched the penalty, sending Dixon the wrong way.
Half-time: Sunderland 2 Middlesbrough 2
Their one-man advantage allowed Sunderland to dominate possession in the early exchanges of the second half.
They found it hard to find a way through as Boro were organised behind the ball but as a consequence they too made little impact in the opposition penalty area.
Haroun's return to action lasted 64 minutes before he limped off after appearing to take a blow to his right foot. Boro's final change followed eight minutes later when Halliday made way.
Eventually Sunderland made their numerical superiority count with 75 minutes played as the ball spun around close to the edge of the Boro penalty area and although not making perfect contact, Liam Agnew did enough to grab his second of the night and edge his team into the lead as he shot low from 16 yards.
Mitchell brought a flying save from Leutwiler with a cracking effort from outside the area, Gorrin saw a 25-yard effort blocked and Whatmore shot wide, then in the final minute Mandron brought a one-handed save from Leutwiler after running just of half the length of the pitch.
Boro remained competitive with Smallwood in the thick of things and not always getting the benefit of decisions.
Scorers: Williams, 3, 45 (pen); Mandron, 36; Agnew, 43, 75.
Sunderland: Dixon; Marrs, Ferguson, Agnew (Holland 90+5), Harrison, McNamee, Whatmore, Gorrin, Mandron, Honeyman (Lawson 68), Mitchell (Cartwright 90+5). Unused subs: Egan, Burke.
Boro: Leutwiler; Bennett, Burn, Jackson, Meling, Haroun (Fewster 64), Halliday (Kneeshaw 72), Smallwood, L Williams, Jones (Weledji 43), Park. Unused subs: Coddington (gk), Waters.
Sent-off: Burn, 39, foul
Bookings: Smallwood, 80, dissent; McNamee, 87, foul