The rearranged quarter-final first leg was played just a day removed from an attack on Dortmund's team bus which hospitalised defender Marc Bartra, and Thomas Tuchel's fears that his side could struggle to compete were borne out in a one-sided first half.
Though Monaco lacked first-choice full-backs Djibril Sidibe and Benjamin Mendy, as well as midfield shield Tiemoue Bakayoko, they stifled Dortmund smartly, while the hosts were rickety in defence.
Fabinho's penalty miss was soon forgotten when Mbappe opened the scoring and Monaco's second away goal came via the head of Dortmund defender Sven Bender - deputising in place of Bartra in Tuchel's back three.
Christian Pulisic's half-time introduction gave Dortmund fresh impetus and stand-in left-back Andrea Raggi regular headaches, and they hit back through an Ousmane Dembele goal which owed much to a sublime touch from Pierre-Emerick Aubameyang in the build-up.
Mbappe's scintillating strike left Tuchel's side with a mountain to climb, but Shinji Kagawa's calm effort at least began the ascent before they travel to the principality in a week's time.
Tributes to Bartra and a stirringly defiant rendition of 'You'll Never Walk Alone' gave way to a cagey start typical of games at this stage of the competition but very much atypical of both sides, until a Dortmund lapse at the back kickstarted a thrilling contest.
Sokratis Papastathopoulos allowed Mbappe a clear path to goal until an arm on the teenager's shoulder prompted him to fall and Italian referee Daniele Orsato to point to the spot, only for the usually reliable Fabinho to miss from 12 yards, screwing his effort wide of Roman Burki's right-hand post.
It mattered little to the visitors, though, as they took the lead two minutes later. Bernardo Silva led a lightning-fast counter, taking the ball from one box to the other before finding Thomas Lemar, who opted not to shoot but saw a cross bobble in off Mbappe - his 20th goal of the season allowed to stand despite the attacker standing offside.
2 - Kylian Mbappé is the youngest player to score two goals in a Champions League knockout game (18 years, 113 days). Brilliant. — OptaJohan (@OptaJohan) April 12, 2017
Dortmund had not taken advantage of Raggi's deployment as an unfamiliar left-back until the 31st minute when Matthias Ginter turned the Italian inside out, only for Kagawa to wastefully scuff wide from eight yards.
But Raggi proved his worth when Bender headed a left-wing cross into his own net, claiming a foul by Radamel Falcao which Orsato dismissed.
Marcel Schmelzer and Bender, playing for just the third time in an injury-hit season, were replaced by Nuri Sahin and Pulisic at the break and only Fabinho prevented Aubameyang converting the USA international's cross from the right.
The Gabon striker played a crucial role shortly after as Dortmund clawed their way back into the contest, brilliantly backheeling Raphael Guerreiro's whipped cross to Kagawa and the Japanese touched the ball away from Danijel Subasic for Dembele to convert simply.
Falcao blazed over after touching clear of an onrushing Burki, but Mbappe's ice-cool technique was on full display as he robbed Sokratis, drove towards goal and lashed into the top-right corner.
Dortmund earned a lifeline when Kagawa twisted into the penalty area and reduced the deficit to a solitary goal and they ought to have been level before full-time, but Aubameyang headed over from inches out.
Though Monaco hold the advantage, Fabinho's late booking rules him out of the second leg, while Mbappe was nursing a calf injury and the sides' gung-ho nature suggests another classic is on the cards.
KEY OPTA STATS
- Kylian Mbappe is the youngest player to score a brace in a Champions League knockout game (18y 113d).
- Mbappe has now scored in three successive Champions League games for Monaco (four goals).
- He is the fifth player to score in his first three CL knockout stage appearances after Christian Karembeu, Steffen Effenburg, Luis Garcia and Leroy Sane.
- Fabinho had scored all nine of his penalties for Monaco this season in all competitions prior to his miss in this game.
- Dortmund have conceded a penalty in each of their last two matches, this after not conceding any in their first 40 games this season.
- Dortmund have now lost three of their last five home knockout stage games in the Champions League (W2), this after losing one of the first eight.