The hosts had the better of the first half before Denmark took control towards half-time and they were on top thereafter.
Denmark's superiority was rewarded with goals by Andreas Cornelius, Simon Kjaer and Niki Zimling moving them on to five points in Group B, the same as their hosts although still five behind leaders Italy.
Matej Vydra had the first shot of the match, the Czech striker sending a long-range shot over the bar.
Cornelius responded in kind for Denmark, firing over from the centre of the area before Nicolai Stokholm shot wide.
Vladimar Darida's 25-yard free-kick from the left was comfortably held by Stephan Andersen although the Denmark goalkeeper was then forced to parry the same player's drilled shot moments later.
Andersen then beat away David Lafata's drive but despite the hosts' dominance it was Denmark who came closest to taking the lead five minutes before the break when Petr Cech was forced to tip Christian Eriksen's volley round the post.
Zimling then volleyed high for the Danes who finished the first half well.
Eriksen fired over moments after the restart with Cornelius firing to the left who gave Denmark a 57th-minute lead.
Nicolai Jorgensen provided the ball to his fellow striker from the centre of the area and Cornelius drilled a fierce drive into the top right-hand corner of the net.
Denmark doubled their lead 10 minutes later when Eriksen's corner from the left found Kjaer in the six-yard box and the defender headed home.
The visitors were comfortably on top, Cornelius heading Eriksen's corner over.
Vydra shot high but the Czechs had produced nothing of note and it was no real surprise when Denmark got a third, Zimling drilling a fierce 25-yard drive into the bottom left-hand corner of the goal.