A third straight win and first away victory in seven saw Boro move up to sixth in the Sky Bet Championship.
“Once we equalised I thought we were right on the front foot,” said Warnock. “From then on we were really dominant, created some great chances and could have scored more goals.
“I love to see them on the front foot – I can’t keep them back.
“I’ve got Paddy McNair doing overlaps in the 93rd minute and I thought Britt (Assombalonga) looked good and sharp.
“What can you say about ‘Wingy’ (Lewis Wing)? I thought (George) Saville was outstanding and little Sam (Morsy) ended up at centre half at the end.
“The two centre-halves were immaculate and everything that happened in midfield was around Saville. So I’m really pleased for them all because they’re a good group.
“Paddy has brought the best out of Dael (Fry). I put my arm around them both coming off, saying ‘you two have been brilliant – I can’t remember too many better partnerships I’ve had’.”
It was Middlesbrough’s biggest league win since they beat Ipswich at home by the same scoreline on March 14, 2015 and heaviest away league victory since beating Millwall 5-1 on December 6, 2014.
“It’s a long time since we scored four away from home but there were some good goals,” added Warnock.
Blues led when Maxime Colin crashed a rising left-foot drive into the top corner from 15 yards in the 15th minute.
Britt Assombalonga levelled in the 27th minute with a cool finish across Neil Etheridge and Saville put Middlesbrough ahead four minutes later when he side-footed home a left-wing cross from Marvin Johnson.
Etheridge allowed Wing’s inswinging corner to drop through his hands in the 56th minute for an own goal and could not stop Wing’s low 25-yard drive eight minutes from time.
Blues have now gone six without a win at home.
Birmingham City: Etheridge, Colin, Roberts, Dean, Pedersen, Clayton (Sunjic 46), San Jose (Kieftenbeld 46), Ivan Sanchez (Leko 62), Toral (Jutkiewicz 62), Bela (Gardner 62), Hogan. Unused substitutes: Andres, Clarke-Salter, Dacres-Cogley, Halilovic.
Middlesbrough: Bettinelli, Dijksteel, Fry, McNair, Bola, Morsy, Wing, Tavernier, Saville, Johnson (Spence 75), Assombalonga (Akpom 83). Unused substitutes: Wood-Gordon, Watmore, Folarin, Brynn, Stojanovic, Coulson, Jones.
Referee: S Martin (Staffordshire).
Support The Yorkshire Post and become a subscriber today. Your subscription will help us to continue to bring quality news to the people of Yorkshire. In return, you’ll see fewer ads on site, get free access to our app and receive exclusive members-only offers. Click HERE to subscribe.