Town maintained an impressive home record over Middlesbrough thanks to two goals from David McGoldrick and a header from Luke Chambers.
Blues have not lost to Boro at Portman Road in 20 years but that statistic looked under threat when the visitors went ahead through Albert Adomah early on.
McGoldrick grabbed his second goal of the season though to level the scores just past the half hour before Chambers put Blues in front with a powerful header in the second-half.
McGoldrick wrapped up the points for Town in added on time, sliding the ball home after escaping down the left.
Mick McCarthy kept faith with the same side that had performed so well at Birmingham in Town’s last outing but it was Boro who started on the front foot and Tony Mowbray’s side had threatened before Adomah struck on 12 minutes, volleying in spectacularly after Grant Leadbitter’s header had sent the ball back into the box.
Former Town midfielder Leadbitter was in the right place at the other end to clear as Ryan Tunnicliffe prepared to shoot from 18 yards, Aaron Cresswell then getting around the back but his cross was cleared by Jonathan Woodgate as Frank Nouble prepared to strike.
It took a brilliant save from Jason Steele to keep his side in front on 20 minutes, the Boro ‘keeper somehow keeping out Paul Anderson’s close range effort after good build up play by Blues.
Cole Skuse almost set up Nouble with a 30 yard pass as Town began to get a grip of possession and the equaliser came on 34 minutes, McGoldrick beating Steele from distance.
Gerken had to be alert to deal with Cresswell’s stray backpass, Christophe Berra clearing up any danger threatened by Jacob Butterfield, then Tommy Smith doing the same from Mustapha Carayol’s cross.
Luke Chambers had the last effort of the first-half, taking Anderson’s cross on his chest and spinning smartly in the box but Steele held firm to take the game into the break level.
Daryl Murphy replaced Nouble at half-time and Town were straight out of the blocks as the second-half got underway, first McGoldrick was denied inside the box then Steele did well to beat out Tunnicliffe’s 20 yarder.
At the other end, a terrific run by George Friend set up Adomah but Berra cleared from inside his box, Smith then throwing himself in the way of Carayol’s strike.
Town got the breakthrough on 57 minutes to reward Town fans turning up the volume, Chambers on the end of Cresswell’s cross to plant his header into the far corner.
McGoldrick threatened a third after Murphy headed on before Boro made a double change just past the hour, Kei Kamara and Marvin Emnes replacing Carayol and Dean Whitehead, with Carlos Edwards also joining the action – Anderson making way.
McGoldrick had a shot deflected for a corner after Tunnicliffe robbed Frazer Richardson, the Manchester United loanee then seeing his effort diverted wide.
Another Cresswell delivery caused alarm in the Boro box, Berra losing his marker but heading over.
McGoldrick – full of confidence – was just wide with a 35 yard piledriver, Luke Hyam’s chip gathered by Steele as Blues looked to wrap up the points.
Hyam had a gilt-edged chance to grab a third for Town when Murphy crossed from the left but the midfielder couldn’t convert with Steele stranded.
Jay Tabb replaced Tunnicliffe for the last 10 minutes, the United loanee given a warm ovation from the Blues’ fans as he left the field.
Adomah headed over on 90 minutes before McGoldrick wrapped up the points with a cool finish in added on time.