Sweden's John Guidetti opened the scoring from the penalty spot in the 23rd minute after Isaac Kiese Thelin was brought down by Alexander Scholz in the box, before Simon Tibbling doubled the Swedes' lead three minutes later.
Uffe Bech pulled one back midway through the second half and Jess Thorup's men then had opportunities to grab an equaliser, but substitute Robin Quaison restored Sweden's two-goal advantage with a composed finish in the 83rd minute.
And captain Oscar Hiljemark got his name on the scoresheet as Hakan Ericson's side broke forward to add a fourth in the fifth minute of stoppage time.
Sweden, who only secured their place in Saturday's semi-final with a dramatic last-gasp equaliser against Portugal in their final group game, will now face Rui Jorge's side again in Prague on Tuesday.
Despite the loss, Denmark can take consolation in the fact that its semifinal apperance secured the nation a spot in the 2016 Olympics in Rio.