Diego Milito scores on his 100th league appearance for the Nerazzurri as Andrea Stramaccioni's side closed the gap to Juventus at the top of the table to four points
Goals from Andrea Ranocchia and Esteban Cambiasso sandwiched Diego Milito's effort as the Argentine marked his 100th league appearance for the San Siro outfit with his fourth goal of the campaign.
Nicolo Cherubin had given Bologna hope with his header midway through the second half but the home side were ultimately punished for being so wasteful in front of goal during an entertaining encounter.
The Rossoblu almost opened the scoring inside two minutes as Alessandro Diamanti's low free-kick from all of 30 yards went just the wrong side of Samir Handanovic's left-hand post.
Stefano Pioli's team continued to have the better of the opening stages, and Alberto Gilardino should have done better with a close-range volley after Tiberio Guarante's reverse pass, but the Italy international sliced his effort wide.
Diamanti looked dangerous whenever he got on the ball, and he threatened the Inter goal again but his powerful shot from the edge of the box flashed wide.
The Rossoblu were employing a shoot on sight policy, and Guarente was the next man to try his luck from range, but his powerful drive was too high to trouble Handanovic.
Despite being on the back foot for the opening 20 minutes, Inter should have gone in front when Ranocchia found himself in space around eight yards from goal from a corner, but the defender could only direct his header wide.
Bologna failed to learn their lesson five minutes later as Ranocchia got above his marker at the back post from Cambiasso's free kick, and the 24-year-old defender made no mistake second time round as he headed across goal into the bottom corner, leaving Federico Agliardi with no chance.
Milito went close to doubling the Nerazzurri's lead soon after when his powerful effort was turned away by Agliardi, but that proved to be the final chance of note of the opening 45 minutes as both sides struggled to find the killer pass in the final third.
Bologna were again quicker out the traps after the break, and they almost drew level after just 30 seconds of the second period as Gilardino's deft back heel found Manolo Gabbiadini on the edge of the box, but his low shot skidded wide.
Despite having to do a lot of defending, Inter looked dangerous on the break, and they doubled their lead after a sweeping move ended in Rodrigo Palacio beating two home defenders before squaring for Milito to slot into an empty net.
Many teams would have folded after falling two goals behind, but the hosts looked to get back into the match and Gilardino was unlucky to see his spectacular volley turned round the post by a diving Handanovic.
The Serie A strugglers did eventually get their goal from the resulting corner as Cherubin beat the Inter goalkeeper to the ball and headed in from Diamanti's searching cross.
The fightback lasted all of five minutes, though, as Miltio and Palacio again combined to find Cambiasso free inside the box and the Argentine made no mistake as he chipped Agliardi to restore the two-goal advantage for Andrea Stramaccioni's team.
The flurry of goals had sprung the game into life and Bologna almost hit back immediately as Diamanti's cross was palmed away from under his own crossbar by Handanovic.
With time running down, the home side continued to search for a way back into the match and Diamanti again demostrated his ability from a dead ball as his free kick was well caught by Handanovic.
The 2010 Champions League winners almost added a fourth late on as Yuto Nagamoto forced Agliardi into a smart save whilst Cambiasso put the rebound over the bar. As it was, though, they had already done enough to rack up another victory, which keeps the pressure on leaders Juventus.