A second half salvo from the Italian ensured that the Rossoneri secured all three points as they continue their rise in Serie A
The Italy international struck on 65 and 82 minutes, the latter a superb finish, and although Philippe Mexes scored a late own goal to set up a tense conclusion, the hosts held on to take the spoils.
A subdued opening 10 minutes came close to springing into life after Stephan El Shaarawy was picked out excellently on the left. He cut inside, but saw his low drive blocked by the feet of Federico Agliardi, with Bologna able to clear.
The encounter was devoid of any clear cut opportunities, and it took until the 30 minute mark for Bologna to fashion out their first chance of the game. Marti Riverola shifted the ball onto his right foot before firing at Christian Abbiati, with the veteran comfortably able to deny the Spaniard.
At the other end, Pazzini was picked out expertly by Kevin Constant with a perfectly weighted ball with the outside of his left foot. The Italian rose highest, only to see his header pushed around the post by Agliardi.
Alessandro Diamanti attempted a speculative 30-yard effort for the visitors, only for Abbiati to easily claim as the Rossoblu looked to take the initiative heading into the interval.
M'Baye Niang looked to fire the Rossoneri in front just minutes after the restart, but his 25-yard drive was deflected wide for a corner. El Shaarway's cross was poorly cleared by Alberto Gilardino as Mexes spectacularly attempted to fire into the back of the Bologna net, but the visitors managed to clear to safety.
The hosts continued to dominate and should have gone ahead on the hour mark. Ignazio Abate strode forward to collect a deflected Niang pass, before pulling back for Pazzini. The Milan frontman, under pressure, fired just wide when it was perhaps easier to score.
Milan kept the heat on, but Agliardi was again on hand to deny the hosts. A Niang corner was played back to the unmarked El Shaarawy who fired goalbound, only for his compatriot to deny him moments after Pazzini's effort.
The pressure paid off, though, for Massimiliano Allegri's side and they found themselves in front with 25 minutes to go. Pazzini took the ball down well before turning on the penalty spot. His goalbound effort took a wicked deflection off Mikael Antonsson, leaving Agliardi to watch helplessly as the ball nestled in the back of the net.
The Italian added his and Milan's second with a little over 10 minutes to go after bringing down Kevin Prince-Boateng's cross. Pazzini the looped the ball over his marker before smashing a fantastic volley past Agliardi to extend the hosts' lead.
A late Mexes own goal ensured a tense finish after the Frenchman inadvertently put the ball into his own net following Christian Pasquato's header across goal, before El Shaarawy came close to netting a superb third for the hosts in injury time, but his curling effort drifted just wide of Agliardi's post as the Rossoneri held on for all three points.