Yussuf Poulsen bounced back from conceding a first-half penalty kick to score the decisive goal Saturday in Denmark's 1-0 victory over Peru in their World Cup Group C opener.
The RB Leipzig forward was deemed to have tripped Christian Cueva in the box when referee Bakary Gassama consulted VAR, but the Peru midfielder skied his shot and left the field in tears at the end of a tense opening period.
Denmark settled into the game after halftime, and Christian Eriksen provided Poulsen with a chance to turn his evening around in the 59th minute, and Poulsen made no mistake.
Paolo Guerrero came off the bench after a successful appeal to suspend his 14-month drug ban cleared him to play, but he could not turn the game in Peru's favor.
Denmark keeper Kasper Schmeichel denied Jefferson Farfan brilliantly with six minutes to go as Peru gave a good account of itself in its first World Cup match in 36 years, entertaining the hordes of South American fans who packed Mordovia Arena.
France awaits Peru next, while Denmark will go into its game against Australia with confidence after collecting three points.
Orlando City's Yoshimar Yotun lashed the ball into Schmeichel's midsection from 25 yards as Peru made a positive, energetic start to the game and Edison Flores lifted a powerful shot over the crossbar from just outside the box.
Andre Carrillo surged toward the Denmark box in the 13th minute and cut inside to curl a low drive toward the bottom-left corner, only for Schmeichel to pull off a diving save.
Denmark began to dominate possession, but it was not until the 27th minute that it attempted a shot on goal, with Thomas Delaney launching the ball over.
Peru promptly countered when Carrillo's pass put Farfan through on goal, and Simon Kjaer had to rush across to defend the striker.
Denmark midfielder William Kvist was taken off on a stretcher after a sustaining a blow to the ribs in a challenge with Farfan, and disaster almost struck for Denmark when Cueva was brought down in the penalty area by Poulsen.
The referee pointed to the spot upon reviewing video footage, and Cueva blazed a shot over the goal, much to the dismay of Peru's sizable travelling support.
Denmark looked more assured after the restart and pushed forward in search of a breakthrough. It arrived just before the hour mark when Eriksen ran through the middle and fed Poulsen, who slotted the ball low to the left of Peru goalkeeper Pedro Gallese.
Peru piled forward and Flores drew a fine, one-handed save from Schmeichel, before the winger was replaced by Peru's all-time leading goal-scorer Guerrero in the 62nd minute.
The veteran forward quickly tested Schmeichel, heading directly at the keeper from close range before trying an audacious backheel from the edge of the 6-yard box that trickled past the post.
Schmeichel then made a brilliant stop with his feet from a late Farfan thunderbolt as Denmark clung on for a hard-fought victory.