Moscow: Yussuf Poulsen ruined Peru's first appearance at a World Cup finals for 36 years on Saturday with the winning goal for Denmark to seal a 1-0 victory in Saransk.
Poulsen made amends for conceding a first-half penalty that was awarded after the referee consulted the VAR system, but which Peru midfielder Christian Cueva blasted over the crossbar.
With France having beaten Australia 2-1 in Kazan earlier in Group C, RB Leipzig's Poulsen showed great finishing to hit the winner on 59 minutes to the dismay of the overwhelmingly Peruvian crowd in the 40,502-capacity stadium.
The win extends Denmark's unbeaten run to 16 games without defeat and end Peru's 15-match unbeaten streak.
Here are the updates from the match:
Denmark 1-0 Peru
FULL TIME!! The referee decides to end the match. On their first World cup match after 36 years, Peru go down 1-0 to Denmark.
90+4 minute: Corner for Peru. This could be Peru's final chance to score an equaliser.
90+3 minute: Yellow card! Poulsen gets booked in the stoppage time.
90+2 minutes: Corner for Denmark.
5 minutes of stoppage time. Can Peru find the elusive equaliser in the additional time? Interestingly, their last two goals at a World cup came in the 83rd minute.
88 minute: Peru are marching forward in the search for an opening. Denmark deny them space up-front.
86 minute: Yellow card!! Denmark's Delaney gets booked in the final minutes of the match. Peru are pushing hard to equalise.
85 minute: Big save by Peru goalkeeper, keeps Peru in the game.
83 minute: Farfan hit a bullet at the Denmark goal but the goalkeeper leaps to clear the ball. Denmark escapes.
82 minute: Great opening for Denmark's Nicolai Jorgensen but Peru clear the danger. That was close.
10 minutes to go!
78 minute: Improvisation from Guerrero as he misses the net by a whisker with a back-heal shot.
77 minute: Peru are doing most of the attacking, which is understandable given the scoreline.
76 minute: Denmark lead 1-0 against Peru.
74 minute: Tapia takes a blow on the head. Referee stops play. Tapia gets up after a breather.
72 minute: Corner for Denmark. Poor delivery by Erikson. Fortunate to get another shot.
70 minute: Great play by Carrillo at the near post, but Denmark's Yurary heads the ball to safety. Denmark escapes.
68 minute: Last ditch defending by Denmark. Great header from Rodriguez but fails to find the final touch.
66 minute: Substitution for Denmark, Sisto is replaced by Braithwaite.
64 minute: The game is beginning to open up. Guerrero tries to head the ball into the goal, but Denmark's goalkeeper plunges on to the ball.
62 minute: Substitution for Peru. Guerrero, the all-time leading goal scorer for Peru, replaces Flores.
61 minute: Peru looking for a response. Flores chips a quick ball on target but the Denmark goalkeeper does well to knock the ball away.
60 minute: GOAL!!! Denmark's Yurary makes the breakthrough for his country. Peru gave away a lot of space to the striker. Denmark 1-0 Peru.
56 minute: Peru open-up the Denmark defence but waste a glorious opportunity. Peru's Carrillo fails to reach to the pitch of the ball.
55 minute: The pace of the game has slowed down.
53 minute: Off-side. Denmark striker Yurary is flagged off-side after a long ball from his teammate.
51 minute: Free-kick to Denmark as Yurary goes down near the box.
48 minute: Excellent run from Peru's Farfan but Denmark's defender clears the danger away.
47 minute: Peru have had eight shots on goal to Denmark's five.
Second-half is underway
Peru and Denmark remain levelled after an awful miss by Christian Cueva off a penalty. Peru were clearly the dominant side in the first half. Andre Carrillo nearly gave Peru the lead with a fiery shot, which was brilliantly saved by Denmark goalkeeper Schmeichel. The biggest question right now is, when will captain Guerrero be substituted into the match?
Half-time! Peru 0-0 Denmark
45 minute: MISSES! Christian Cueva messes up the penalty, shoots way past the Denmark crossbar.
44 minute: Penalty! Peru have a chance to take the lead.
40 minute: Peru are charging down on Denmark as Farfan takes a shot from close range.
35 minute: Substitution for Denmark L. Schöne replaces Kvist.
31 minute: Denmark's Kvist not looking a 100 percent happy, walks out of the pitch. Substitution on the cards for Denmark.
30 minute: Sloppy-play from Peru in the midfield, could have been costly. Defenders make a timely interception for Peru.
28 minute: That was close. Brilliant through-ball by Carrillo but Denmark's defender clears the ball away. Corner for Peru.
27 minute: Denmark dominate for the first time in the match, Delaney hits a long shot way over the Peru crossbar.
25 minute: Denmark's Erikson attempts a long shot, hits wide.
24 minute: Corner for Denmark. They are finally settling in.
21 minute: Off-side! Peru's Carrillo is flagged by the line referee after a free-kick.
20 minute: Peru survive a scare from
18 minute: Corner for Denmark, an awkward ball for the Peru goalkeeper as he claws the ball away from danger.
15 minute: Free-kick to Denmark, as Tapia concedes a foul.
12 minute: SAVED!! Peru look hungry, but the Denmark goalkeeper makes a great save by diving to his right after a fiery shot from Peru's Carrillo.
10 minute: Another long shot on goal by Peru. Edison Flores clouds it away from the Denmark goalpost.
7 minute: Peru's Yotun tries to score into the Denmark goal with a long-shot, hits straight to Denmark's goalkeeper.
5 minute: Free-kick to Peru after as Rodriguez goes down near his own defensive half.
2 minute: Peru make an early charge into Denmark penalty but the striker is blocked. Referee says play-on.
Denmark: Kasper Schmeichel; Simon Kjaer, Jens Stryger Larsen, Andreas Christensen, Henrik Dalsgaard; Yussuf Poulsen, Christian Eriksen, William Kvist, Pione Sisto, Thomas Delaney; Nicolai Jorgensen
Peru: Pedro Gallese; Christian Ramos, Miguel Trauco, Luis Advincula, Alberto Rodriguez, Edison Flores, Andre Carrillo, Renato Tapia, Yoshimar Yotun, Christian Cueva; Jefferson Farfan
Goalkeepers: Pedro Gallese, Jose Carvallo, Carlos Caceda.
Defenders: Luis Advincula, Miguel Araujo, Aldo Corzo, Nilson Loyola, Christian Ramos, Alberto Rodriguez, Anderson Santamaria, Miguel Trauco.
Midfielders: Pedro Aquino, Wilder Cartagena, Christian Cueva, Edison Flores, Renato Tapia, Yoshimar Yotun.
Forwards: Paolo Hurtado, Andy Polo, Andre Carrillo, Raul Ruidiaz, Jefferson Farfan, Paolo Guerrero
Goalkeepers: Jonas Lossl, Frederik Ronow, Kasper Schmeichel.
Defenders: Andreas Christensen, Mathias Jorgensen, Simon Kjaer, Jonas Knudsen, Jens Stryger Larsen, Jannik Vestergaard.
Midfielders: Thomas Delaney, Christian Eriksen, Michael Krohn-Dehli, William Kvist, Lukas Lerager, Lasse Schone.
Forwards: Martin Braithwaite, Andreas Cornelius, Kasper Dolberg, Viktor Fischer, Nicolai Jorgensen, Yussuf Poulsen, Pione Sisto