Jamiro opened the scoring for Union, tapping in an Alejandro Bedoya cross in the 24th minute.
But in a fast finish to the first half, there were another three goals scored before the break.
Santos finished in a one-on-one before putting away a wonderful pass from Brenden Aaronson to make it 3-0.
Alan Pulido's header from a Johnny Russell cross in first-half additional time gave Sporting hope, but it was unable to complete a comeback after the break.
Philadelphia will face either New York City or Portland Timbers in the semi-finals.