Charlton had the first opening in the second minute but Bryan Hughes and then Darren Bent spurned it.
Home keeper Mark Schwarzer denied Bent again with a wonderful save less than a minute after Hughes levelled with a sweet volley.
But a dramatic, action-packed evening at the Riverside that was in complete contrast to the original tie saw Boro triumph thanks to first-half goals from Fabio Rochemback and James Morrison after a defensive mix-up, and two in quick succession after the break by Jimmy Floyd Hasselbaink and Mark Viduka.
Darren Bent and Chris Powell both returned after being rested at the weekend. Marcus Bent was cup-tied; Gonzalo Sorondo dropped to the bench. Shaun Bartlett started and Bryan Hughes returned from injury so Jay Bothroyd and Jason Euell were both demoted to bench duty. Jerome Thomas was only among the substitutes and there was no place yet again for Darren Ambrose.
Alan Curbishley: "We started the game well and I was really pleased but we just couldn't get a foothold in the game and didn't get the goal we deserved. But we've come here and given it our best shot which wasn't good enough."
"We just couldn't get near their forwards. I was disappointed with the free-kick and having got ourselves back into it we conceded a really scrappy goal for their second. We had to go for it in the second half and when it opened up you saw the consequences."
"We're all disappointed for the supporters as they came here and did fantastically well for us. We wanted to send them home happy but it wasn't to be."
Steve McClaren (MFC): "As we expected, they started off very, very quickly and we could not adjust to the tempo and we could have been 2-0 down after 10 minutes."
Source: Official sites