After winning the first leg on home soil by a slender 1-0 scoreline last week, Edin Terzic's men produced another magnificent defensive display to prevent Kylian Mbappe and co from having any joy in the final third.
A cagey first half was controlled by Dortmund, before stalwart Mats Hummels netted what proved to be the decisive goal five minutes after the break - becoming the third-oldest goalscorer in a Champions League semi-final.
In front of a rocking Parc des Princes atmosphere, it turned into a night of despair for Luis Enrique's PSG, who hit the woodwork a remarkable four times in the second half and ultimately could not find a way through a well-organised BVB's backline.
Victory for Dortmund sees them progress to their first Champions League final since the day of Jurgen Klopp in 2013 and it keeps their hopes of emulating the class of 1997 alive.
Terzic's side can now pencil a trip to Wembley Stadium into their diaries for a showpiece against either fellow Bundesliga outfit Bayern Munich or 14-time winners Real Madrid., who face off in the second semi-final on Wednesday.
As for PSG, their wait to win an elusive Champions League crown goes on, and the defeat represents what is expected to be Mbappe's final match in the competition for the French giants before the Real-Madrid-linked striker departs at the end of the season upon the expiration of his contract.
Cagey first half controlled by Dortmund
Despite winning the first leg, Dortmund entered the reverse fixture as underdogs. However, there was little evidence of that in the opening 45 minutes in Paris, and Terzic will have been pleased with his side's controlled and disciplined start to proceedings, even though PSG had a few encouraging moments.
BVB nullified the threat of Mbappe by doubling up on the French star on PSG's left. There was one occasion when Mbappe was presented with a half-chance inside the penalty area, but as he lined up a shot following a Fabian Ruiz cutback, Hummels made an excellent challenge on the stretch to take the ball off his feet.
Just seconds later, Dortmund broke on the counter-attack and created the best chance of the first half. Karim Adeyemi was at the heart of is as he used his blistering pace to run around 60 yards towards PSG's goal before forcing Gianluigi Donnarumma to make a strong left-handed save.
Dortmund's defensive resilience has been a key factor behind their success en route to the semi-finals, and they have now kept 10 first-half clean sheets in 12 Champions League games this term.
Hummels stars, Mbappe quiet as Dortmund frustrate PSG
PSG came flying out of the blocks in the second half and they almost netted their first goal of the tie less than two minutes after the interval, but teenage midfielder Warren Zaire-Emery could only place his shot from a tight angle against the face of the post.
Dortmund immediately burst up the other end won a corner that they scored from courtesy of a bullet header from star defender Hummels. PSG were somewhat caught off-guard when Julian Brandt curled his corner towards Hummels, who peeled away from Lucas Beraldo to nod the ball in at the back post - BVB's first-ever goal at the Parc des Princes.
At the age of 35 and 143 days, Hummels has become the third oldest goalscorer in a Champions League semi-final after Ryan Giggs in 2011 (37 years, 148 days) and Edin Dzeko last season (37 years, 54 days) - Hummels's only previous goal in the knockout rounds of the competition came back in February 2013, when he struck for BVB against Shakhtar Donetsk in the last 16.
The pressure was on PSG to respond and they came agonisingly close to pulling a goal back just after the hour mark when left-back Nuno Mendes unleashed a venomous 25-yard shot that smacked the far post.
Dortmund boss Terzic brought on Niklas Sule for Jadon Sancho and switched to a back five for the final 20 minutes, while Bradley Barcola and Marco Asensio were thrown on by Enrique to provide a much-needed spark in PSG's attack, with Mbappe playing through the middle.
Shortly after Marquinhos glanced a header inches wide, Mbappe watched a deflected strike from around 10 yards out clip the woodwork, before Vitinha then smacked an audacious 30-yard strike against the underside of the crossbar, and the ball bounced clear much to the relief of BVB goalkeeper Gregor Kobel.
The woodwork may have come to their saviour a total of six times across the two legs, but Dortmund ultimately deserve all the plaudits that come their way, especially from the second leg as they threw their bodies on the line and made countless blocks to prevent PSG from testing Kobel in dangerous areas.
Both teams will now turn their attention back to domestic duties, with PSG hosting Toulouse in Ligue 1 on Sunday, a day after Dortmund travel to Mainz 05 in the Bundesliga.