Goals by France winger Franck Ribéry and Germany's Mario Götze sealed the win which put the Bavarians into the last 16 with a perfect 12 points so far.
Bayern collected their fourth straight win to give them an unassailable eight-point lead before their remaining group matches at bottom side Manchester City and home to CSKA Moscow next month.
The victory came at a price as left-back David Alaba injured the medial ligament in his knee, with a scan due Thursday, and coach Pep Guardiola expects him to miss the rest of the year.
"It's a real pity, he's really important for us, but it looks like he will be out for two or three months and he'll play again after Christmas," said Guardiola.
Despite losing to Bayern home and away, Roma are still primed to join Munich in the knock-out phase as they stay second in the group, but level on four points with CSKA whom they play away in three weeks.
"We can leave here with our heads held high and that was our goal here," said Roma coach Rudi Garcia.
"I think we cancelled out the bad image of the game in Rome. They are a very strong side and they proved it once again."
As Guardiola had predicted, the hosts encountered a far more robust Roma defence compared to their record 7-1 routing of the Italians in Rome a fortnight ago.
Ribéry gave Bayern a first-half lead at the Allianz Arena after 38 minutes having also scored in the first-leg romp.
"It was only a question of time when we would score once we got the game under control," asserted goalkeeper Manuel Neuer.
Götze then netted the second with a goal reminiscent of his World Cup final winning-effort when he flicked on Robert Lewandowski's second-half cross to put the result beyond doubt after 64 minutes.
Guardiola even took the luxury of resting stars Thomas Müller, Arjen Robben and Dante.
Roma needed more than 80 minutes to produce a single clear chance although Bayern still endured a frustrating first 45 minutes, played predominantly in the Italians' half, before Ribéry struck.
There was to be no repeat of the 5-0 half-time scoreline Bayern had posted in the first-leg.
Götze squandered an early chance just to the left of the goal on 18 minutes, then Bayern captain Philipp Lahm forced Roma goalkeeper Lukasz Skorupski into a save on 22 minutes.
Bayern got the breakthrough they had long been threatening when Ribéry completed the move he started, curling his shot in off the right-hand post.
He released Alaba on the left and the Austrian international produced a superb return pass to find Ribery on the edge of the area as he sprinted onto the ball at pace to give Skorupski no chance.
Bayern kept up the pressure after the break with right-wing Juan Bernat firing at Skorupski in the half's opening exchanges while Alaba headed over.
Bayern's second came when Poland striker Lewandowski found his ex-Borussia Dortmund team-mate Goetze in the middle and the attacking midfielder looped his chip over Skoprupski.
Neuer was finally tested in the 84th minute when Roma's Radja Nainggolan unleashed a fierce drive which forced the Germany goalkeeper into a diving save.
SEE ALSO: 7-1! Bayern celebrate record in Rome