Andre Blake was the hero as the Union progressed to the Eastern Conference Final after beating Nashville 2-0 on penalties, with the game ending 1-1 after 120 minutes.
Hany Mukhtar had put Nashville in front with a header following a smart delayed run which left Blake rooted to the spot.
Daniel Gazdag scored on the stroke of half-time as he managed to get a shot off on the second attempt, and he found the bottom corner beating Joe Willis.
The game remained at 1-1 until penalties, where the Union came out on top thanks to the heroics from Blake and two other awful penalties. Blake produced two massive saves as the Union won 2-0 in the shootout and now await the winners of NYCFC and the New England Revolution.
The Union made one change to the side that won during extra-time against New York Red Bulls, as Jamiro Monteiro returned from health and safety protocols to replace Paxten Aaronson. Nashville named an unchanged lineup following their midweek victory over Orlando.
Alvas Powell had the first chance of the game for the Union after a corner was headed out as far as the right-back. Powell did well to bring the ball under control before cutting inside on his left foot, but his shot was high and wide of the target.
Jakob Glesnes did brilliantly to deny Hany Mukhtar in the 28th minute. Mukhtar sprinted into the box, and as he went to shoot, he was upended by a brave block by Glesnes as the ball went out for a corner. Fortunately, it came to nothing.
In the 38th minute, Mukhtar headed Nashville in front. Eric Miller received the ball on the right-hand side and swung an excellent cross towards the penalty spot. Mukhtar delayed his run before running onto the cross undetected and heading across the goal leaving Andre Blake with little chance of saving it.
Right on the stroke of half-time Daniel Gazdag brought the Union back on level terms. A corner was flicked on towards the back post, and Gazdag was there to try and volley it. However, his initial effort was blocked, but the rebound fell perfectly for him to knock it into the bottom corner beyond Joe Willis.
HALF-TIME: Philadelphia Union 1-1 Nashville SC
The Union made their first substitution in the 57th minute as Leon Flach was forced off through injury. He was replaced by Sergio Santos, who should have scored minutes later. He got behind the Nashville defence, but his attempted chip towards the goal failed to find the target as it bounced across the six-yard box.
Gazdag thought he had put the Union in front in the 77th minute. A corner was swung towards the back post as Willis was unable to make contact with the ball. It fell perfectly for Gazdag to volley into an empty net, but the goal was called back for a foul on Willis as Gazdag was celebrating. Santos was adjudged to have fouled the Nashville goalkeeper as the corner was going across the box
In stoppage time, the Union had a good chance to find a winner. A cross into the box was flicked on by Alejandro Bedoya, and it fell into the path of Santos. He was battling with his defender to try and prod it towards the goal, and the final touch went just wide of the post. In the aftermath, Santos appealed for a corner as he believed it came off the defender, but the claim was waved away.
The game ended level after 90 minutes as the game headed into extra time to find a winner.
FULL-TIME: Philadelphia Union 1-1 Nashville SC
Daniel Lovitz came close during the opening minutes of extra time but was denied by a Glesnes header. A Mukhtar corner was cleared as far as Lovitz, who shot first time. It looked to be going towards the top corner, but Glesnes got himself in the way to head behind for another corner, which the U