Boateng and Ibrahimovic both grabbed a goal and assist as Milan dominated their hosts who also missed a penalty late on...
Kevin-Prince Boateng gave the visitors the lead, before turning provider for Robinho, then in the second half Zlatan Ibrahimovic grabbed a third before Marco Di Viao missed a late penalty.
Milan got off to a flying start, dominating from the off and were rewarded with an early goal by Boateng. Ibrahimovic had the ball on the left side before firing in for the Ghanaian to put the ball past Emiliano Viviano and give the away team the lead.
However, the home side did come back into the match and had more of the ball but Milan always looked to have the edge on the counter.
The usually potent in-front of goal, Di Vaio hardly had a sniff as Milan dealt with everything Bologna could throw at them, this coupled with Ibrahimovic whose influence steadily increased as the half wore on.
Then just after the half hour mark Milan managed another, this time it was Boateng who provided the assist as he played Robinho in through the centre and the Brazilian made no mistake, slotting home to give his side a deserved two goal lead.
As half-time drew near, the Rossoneri started playing with extreme confidence, passing the ball around with ease as the home side desperately looked towards the break.
After the interval it was as you were as Milan were dominant once more, with Ibrahimovic and Robinho both going close.
Although, a moment of madness from Christian Abbiati almost gave Bologna a way back into the game. The goalkeeper stopped the ball from going out for a corner, dwelt on the ball giving Riccardo Meggiorini the chance to close and poke the ball into the path of Gaston Ramirez who shot wide of an empty net.
But the game was effectively over as minutes later Ibrahimovic gratefully took down an Andrea Pirlo through ball, held off Miguel Britos and fired past Viviano at the near post.
Milan continued to press home their advantage but they gave away a penalty after Clarence Seedorf tripped Di Vaio following a corner but Abbiati saved the resulting spot kick from the Bologna captain.
Destroyed by that miss the visitors raced towards the finish line leaving Bologna wondering what might have been.
The result means Milan extend their lead at the top of Serie A to six points over Lazio and Napoli, though the Rome side still have to face Juventus later today. Bologna on the other hand remain in twelth position.