But a moment of madness from Ribery threatened to ruin Bayern's night.
Having overrun the ball, the France midfielder, who this week was the subject of off-field controversy, lunged at Lopez, plunging his studs into the striker's ankle.
Referee Roberto Rosetti immediately flashed the red card. The Allianz Arena was briefly silent before a chorus of boos rang out, but replays proved Ribery, and the Bayern fans, could have no complaints.
Ribery's departure might have encouraged Lyon to play on the front foot, but even before Toulalan's second booking made it 10 men apiece, Bayern had still looked the more likely scorers.
Indeed, Thomas Muller should have scored on 53 minutes when set up by marauding right-back Philipp Lahm but stumbled over the ball with only the keeper to beat.
A minute later, Toulalan, already booked for tripping Robben moments earlier, flew in for a 50-50 with Schweinsteiger, winning the ball but just catching the Bayern player, who appeared to make the most of the contact.
A booking looked harsh, and Toulalan showed his fury as he punched a wall on his way down the tunnel.
That ended any hope that Lyon might press for a win, and it was left to Bayern to carry the attacking threat.
Robben screwed a shot wide of the post before substitute Mario Gomez headed straight at the keeper from the Dutchman's cross.
The breakthrough finally came on 69 minutes when Robben picked up the ball on the right, cut inside on to his left foot before unleashing a swerving shot which brushed off Muller's head before beating Lloris.
The in-form winger almost scored another spectacular goal after a slaloming run infield, but Bayern had to settle for a one-goal lead ahead of the second leg at the Stade Gerlande on Tuesday.
Van Gaal will be unable to call upon Ribery for that match, while Lyon will be without Toulalan, but the French side at least managed to avoid any other suspensions.
Six other players were a booking away from a ban, but escaped trouble, and after a poor performance in Munich, they may also be relieved that their hopes of reaching the final are still very much alive.
Bayern Munich manager Louis van Gaal: "I am very satisfied. I think that we showed Europe how strong we are, we showed that by dominating with 10 men against 11.
"I did not think that we would win 1-0 with Ribery getting a red card, but we dominated. I think we created more chances when we were with 10 men against 11.
"When we were then 10 against 10 I sent in (another striker) Mario Gomez to score a goal faster. We created many chances but scored one goal. That is good."
Lyon coach Claude Puel: "I am not looking for excuses. We still have some chances. We did not succeed in scoring that crucial away goal. I would have preferred to have lost with an away goal.
"We started well but we lost the ball too easily. In the second half we were too weak with the ball.
"Ribery's red card allowed us to take control of the match but then we then we had our player sent off. When it was 10 against 10 it became a very difficult match for us."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.