Dortmund's win, coupled with Atletico Madrid's 0-0 tie at Club Brugge, gave the Bundesliga leader the top spot in the group ahead of Atletico -- and a place among the eight seeds for the final-16 stage.
Pulisic, who has been bothered by leg injuries this fall, got the start at the Stade Louis II as Dortmund rested young English sensation Jadon Sancho and Dane Jacob Bruun-Larsen, the two players who have moved ahead of him, as well as Marco Reus and Axel Witsel.
Pulisic's work contributed to both goals scored by French-bred Portuguese international Rafael Guerrero, and he was lauded by the French media for his skill with both feet and accelerations down the left wing.
Atletico was stymied by Ethan Horvath, who recorded his third shutout in three starts in the Champions League since winning back the starting job at Brugge, which will move into the round of 32 in the Europa League.
Weston McKennie did not play for Schalke 04, which was already assured of finishing second in its group -- and a place in the round of 16 -- before its 1-0 win over Lokomotiv Moscow.
Tim Weah did not dress for Paris St. Germain, which won at Red Star Belgrade, 4-1, to clinch first place in its group. Weah is not expected to be at PSG for the restart of the Champions League in January. He has not dressed for the first team since August, and Ligue 1 clubs Amiens and Strasbourg are aggressively pursing loan deals for the 18-year-old forward.