Kylian Mbappé scored in each half, either side of a Sven Bender own goal, to give Monaco the upper hand in their UEFA Champions League quarter-final, although second-half strikes from Ousmane Dembélé and Shinji Kagawa kept Borussia Dortmund in contention.
Pierre-Emerick Aubameyang and Thomas Lemar had narrowly missed the target at either end before Mbappé was felled by Sokratis Papastathopoulos in the 17th minute. Fabinho, having converted all 15 previous career penalties, drilled the spot kick wide.
However, Monaco kept pouring forward and two minutes later they were ahead. With Bernardo Silva's driving run having exposed the home defence, his pass found Lemar on the left and the ensuing cross was bundled in by Mbappé for his eighth goal in seven games.
Kylian Mbappé after scoring his and Monaco's first goal
Dortmund regrouped and might have drawn level when Łukasz Piszczek cut in from the right, the unmarked Kagawa flicking wide. Yet once again Monaco's response was swift, Andrea Raggi's teasing cross nodded into his own net by Bender with Radamel Falcao lurking.
The half-time introduction of Nuri Şahin and Christian Pulišić reinvigorated Dortmund, though, and after a concerted spell of pressure they pulled one back 12 minutes into the second half. Raphaël Guerreiro's cross was cleverly diverted to Kagawa by Aubameyang, the Japanese playmaker showing excellent awareness to flick square for Dembélé to tap in.
Falcao shot over as Monaco threatened to restore their two-goal cushion, but it was a Dortmund slip that gave the Ligue 1 leaders their chance. Piszczek's pass was cut out by Mbappé, who sprinted clear to finish unerringly. Kagawa, however, gave Dortmund late hope, collecting Matthias Ginter's centre and twisting past Kamil Glik to revive his side's challenge ahead of their trip to France.
Key player: Kylian Mbappé (Monaco)
As well as scoring twice, the 18-year-old won a penalty and threatened whenever the ball came near him. Mbappé's second summed up what the newly capped French international is all about, as he displayed great anticipation to intercept, sprinted clear and then produced the precocious composure in front of goal that is arguably his biggest asset. Mbappé has taken the UEFA Champions League by storm, bagging four goals in his first three starts in the competition.
Fabinho's 100% record from the spot for Monaco ended on a night when Leonardo Jardím finally gave him the responsibility instead of Falcao. The Colombian had already missed against Manchester City and Tottenham in this season's tournament, whereas Fabinho had scored from all 15 competitive penalties. Falcao should be back on duty in the second leg because Fabinho is suspended.
Pulišić makes an impact
The decision to omit Pulišić from the starting XI came as a surprise; his introduction at the interval changed the tone of this game, if not the result. Switching from a back three to a more attacking back four and moving the increasingly dangerous Guerreiro to left-back enabled Pulišić and Dembélé to roam more freely, while Kagawa at times looked the player Dortmund once sold to Manchester United. Dortmund may wonder what might have been had that been the initial formation.
Steffen Potter, Dortmund (@UEFAcomSteffenP)
When Fabinho squandered an early spot kick and the home faithful responded vociferously, for a short while you felt it could be Dortmund's night. It was not to be. They conceded three rather unlucky goals, the last one from a terrible mistake when it seemed they might still find their way back into the match after some crucial half-time adjustments. Kagawa's late strike is the silver lining they need for the return leg.
David Crossan, Monaco (@UEFAcomDavidC)
Excellent in the opening period, Monaco withstood the second-half Dortmund pressure to take a valuable advantage to Stade Louis II. Mbappé added to his growing reputation, though this tie is far from over and Fabinho's suspension is a blow for ASM. It will be compensated for, nonetheless, by Tiemoué Bakayoko's return from a ban, while left-back Benjamin Mendy should be fit again and his pace will help to handle Christian Pulišić.