Middlesbrough manager Jonathan Woodgate was fuming with his players after the 2-1 Sky Bet Championship defeat at Birmingham.
The Teessiders were a distant second best as Fran Villalba and substitute Odi Bailey deservedly ended City’s three-match losing run.
Daniel Ayala equalised for Boro with three minutes to go, only for Bailey to win it - and anything other than a Birmingham win would have been unfair as they dominated the contest.
Woodgate did no’t spare his sorry side as they made it four games without a win, remaining 20th in the table.
He said: “I wish I could put my boots on and play, and head a few balls out or tell my full-backs to stop crosses.
“The players need to roll their sleeves up and have a long, hard look at themselves in the mirror.
“I’ll be the first to do that. To perform like that, especially first half, was not good.
“You can imagine exactly what I said to them at half-time, and full-time. Have I raised my voice to them? They need to be told it’s not good enough.
“They need to do the dirty things better - stopping crosses and winning headers because in this league, you’ve got to battle. But Birmingham were a lot better than us.”
Blues caretaker head coach Pep Clotet paid tribute to his youngsters who won the match - Villalba is 21 and Bailey 19 - along with 16-year-old Jude Bellingham.
He explained: “I am very pleased because this shows the work of the whole club.
“First we need to find the players, second we have to bring them in, third, we have to develop a plan for them and fourth, give them space in our team.
“We have done that and they have managed it very well.”
He also hailed the team performance, adding: “I think that was the best since I have been here.”
Birmingham were only prevented from taking the lead by their former goalkeeper Darren Randolph, who threw himself high to his left to tip aside Villalba’s venomous volley.
The chance - like many as Birmingham looked to expose their former defender Ryan Shotton at left-back time and again - came after a deflected cross from right-back Maxime Colin sat up perfectly for the Spaniard.
Randolph was in action again soon after, tipping over to save the blushes of centre-back Dael Fry, who diverted the ball goalwards.
Randolph got his fingertips to Colin’s goalbound cross - which looped up off Shotton - before punching Villalba’s corner behind.
Middlesbrough’s only other real threat came when Marcus Tavernier’s curling free-kick was palmed behind by Lee Camp.
But Blues returned to the attack to take a wholly deserved lead.
Villalba spread play to Colin down the right and went for the return, the Spaniard sweeping a neat side-footed effort into the bottom corner from just inside the area.
Randolph then got his hands to headers from Kristian Pedersen and Harlee Dean, before Bellingham’s deflected shot dropped just wide.
Another Pedersen header hit the bar and was frantically scrambled away.
Birmingham continued to be stronger after the break, and Gardner hit the inside of the post with a 20-yard shot, while Ivan Sunjic whistled a drive just wide.
Boro scored a barely deserved equaliser when Ayala forced the ball home from Britt Assombalonga’s cross - but the hosts regained the lead in the 90th minute when Bailey stabbed home Dan Crowley’s deep cross.
Birmingham City: Camp, Colin, Roberts, Dean, Pedersen, Crowley, Sunjic, Bellingham (Gardner 74), Villalba (Maghoma 77), A Gimenez, Jutkiewicz (Bailey 83). Unused substitutes: Harding, Stockdale, Clarke-Salter, Davis.
Middlesbrough: Randolph, Dijksteel (Gestede 82), Ayala, Fry, Shotton, McNair, Clayton (Wing 57), Howson, Tavernier, Assombalonga, Browne (Fletcher 57). Unused substitutes: Johnson, Saville, Bola, Pears.
Referee: J Simpson (Lancs).