The German champions might have hit three past Lyon, but the minnows from French Ligue 1 could have stunned Bayern Munich in Lisbon if not for their profligacy.
Memphis Depay missed a glorious chance in the opening five minutes and Toko Ekambi hit the post moments later.
Serge Gnabry’s first half double and Robert Lewandowski’s late header sealed the victory as Bayern Munich reached their eleventh Champions League final.
"We knew it would be difficult, they came in off the back of great performances against City and Juventus," Flick told reporters after the comprehensive victory over Rudi Garcia’s men.
"They are strong tactically and they caused us problems early on. We know we need to defend better, we said before we couldn't afford to give away the ball easily, but we did."
Bayern Munich have now won their 10th consecutive Champions League game, equalling the longest streak in the competition's history.
The Bavarian giants have also netted 42 goals in the competition this season – only the 1999-00 Barcelona team (45) have managed more in a single campaign in Europe.