Boateng scored the opener and set up Robinho to score the second
Zlatan Ibrahimovic scored a third goal after halftime and Milan goalkeeper Christian Abbiati denied the hosts a consolation goal when he saved Marco Di Vaio's penalty kick 12 minutes from time.
The win is Milan's 11th of the season and takes its point tally at the top of the standings to 36.
Second-place Lazio played at Juventus later Sunday.
"It was difficult, but we weren't expecting anything else," Ibrahimovic said. "We were put under massive pressure for the first 30 minutes.
"We are taking things one game at a time and we have done well with that until now," he said. "We have to keep going this way even though there is much of the season left." AS Roma's inconsistent season continued with an unconvincing 1-0 win at home to Bari.
Bari goalkeeper Jean Gillet stopped Francesco Totti's weak penalty in the 20th, but 10 minutes later the Roma captain set up Juan for the only goal of the game.
Totti clipped a freekick to the near post and Juan was left unmarked to guide the ball past Gillet. Roma winger Jeremy Menez then skimmed the outside of the post with a low shot just before halftime.
After the break Bari limited Roma to shots from outside the area, but was unable to threaten an equalizer.
Bologna went close four minutes into the match. Gaston Ramirez shot from distance, but Abbiati palmed the ball away for a corner.
Boateng opened the scoring in the ninth after Ibrahimovic crossed from the left and the Ghanaian raced in to volley home from close range for his second goal in two games.
Boateng then turned provider for Milan's second. He played a through ball to Robinho and the Brazilian held off Andrea Esposito to shoot low under Emiliano Viviano.
The goal was Robinho's third in three league games and takes his league tally to six.
"I'm happy for them. I am happy to help someone else score," Ibrahimovic said. "If we help each other out we will play well and then we will win games." Ramirez again came close to scoring in the 56th but shot into the side netting after Abbiati had lost the ball outside the area.
In the 60th Ibrahimovic's ninth league goal of the season wrapped up the win.
Andrea Pirlo played a ball over the top and the Sweden international was too strong for Miguel Britos as he sidefooted the ball past Viviano.
Abbiati made two more stops before the final whistle.
First he dived low to stop Riccardo Meggiorini's header at the near post and then after Clarence Seedorf brought down Di Vaio the goalkeeper dived to his right to save the Bologna captain's attempt from the spot.