The Bundesliga leaders are level with Atletico Madrid at the top of Group A after a 3-0 victory at the Westfalenstadion, with all the goals coming in the second half.
Half-time substitute Jacob Bruun Larsen made the breakthrough in the 51st minute, Paco Alcacer scored the second in the 72nd minute soon after missing a penalty and Marco Reus added a third in stoppage time.
The result piled more misery on Monaco, who are in the Ligue 1 relegation zone and have now gone 10 games without a victory in the Champions League.
They had performed creditably against Atletico in their opening game, though, and had marginally the better of the first half here.
It was Roman Burki who was called on to make the first two saves of the match, first comfortably from Youri Tielemans and then, in the 19th minute, spectacularly with a flying stop to deny the Belgian.
Dortmund had offered little to trouble Diego Benaglio in the Monaco goal but he was beaten in the 33rd minute by a clever curling shot from Alcacer that just went the wrong side of the post.
Six minutes later Benaglio was forced to make a save, and got down smartly to keep out a shot on the turn from Marius Wolf, but in doing so the Swiss appeared to pull his groin.
Fortunately for Monaco, Danijel Subsasic was available for the first time since the World Cup final and he came on just before half-time.
Lucien Favre sent on Bruun Larsen for Wolf at the start of the second half and within six minutes the young Dane had found the breakthrough.
Young England star Jadon Sancho, who signed a new contract on Tuesday, created the goal with a clever pass through and Bruun Larsen made no mistake.
The pressure on Subsasic’s goal began to grow but he was helped out by a superb covering tackle from Djibril Sidibe when Alcacer looked to be clean through on the hour mark.
Reus then shot just wide before Alcacer struck his penalty against the bar in the 66th minute after Reus had been felled by Kamil Glik.
But five minutes later Alcacer made amends in fine style, rounding Subasic and this time finding the back of the net to make the points safe.
Both sides had chances in the final stages but it was Dortmund who found another goal, Bruun Larsen breaking away down the left and crossing for Reus to continue his prolific season.