Diego Milito scored on his 100th Serie A appearance for the Nerazzurri as Andrea Stramaccioni's side closed the gap at the top 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 pulled a goal back for Bologna but the team was largely wasteful in front of goal despite dominating periods of the entertaining encounter.
The home side 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 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 its lesson five minutes later. Ranocchia got above his marker at the back post from Cambiasso's free kick and the 24-year-old 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 was again quicker out the traps after the break and 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. The team double its 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 home side 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 stragglers 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 demonstrated his ability from a dead ball as his free kick was well caught by Handanovic.
The 2010 Champions League winner almost added a fourth late on as Yuto Nagamoto forced Agliardi into a smart save and Cambiasso put the rebound over the bar.
Follow GOAL.COM USA on