Match ends, Peru 0, Denmark 1.
Denmark began their World Cup campaign with a hard-fought victory against a Peru side that had earlier missed a penalty.
The South Americans were awarded a spot-kick after consultation with the video assistant referee but Christian Cueva, the man fouled, shot over the crossbar.
That miss proved crucial as the Danes hit Peru on the counter-attack in the second half with Christian Eriksen releasing Yussuf Poulsen, who had conceded the penalty, and he fired past Pedro Gallese.
Peru were denied an immediate equaliser when Denmark goalkeeper Kasper Schmeichel produced a fantastic one-handed save to deny Edison Flores.
Substitute Paolo Guerrero, only able to play after a Swiss tribunal lifted a 14-month drugs ban, backheeled a chance wide as Denmark held on.
It means France top Group C on goals scored after their 2-1 win over Australia as Antoine Griezmann's penalty, also awarded via VAR, and Paul Pogba's deflected chip gave Didier Deschamps' side the three points.
All four teams in the group are in action again on Thursday as Denmark meet Australia in Samara (13:00 BST), before France take on Peru in Ekaterinburg (16:00).
- Relive Peru v Denmark as it happened
- See how the players rated in the Peru v Denmark match
- Messi misses penalty as Iceland hold Argentina
- Word Cup results, fixtures and tables
VAR once again makes the headlines
For the second time on Saturday - and the second time in this World Cup - a penalty was awarded after a VAR consultation.
After Griezmann's spot-kick for France against Australia, Peru were given a penalty after referee Bakary Gassama had initially missed Poulsen sliding in and taking out the standing leg of Cueva.
But after play had continued, it was pulled back with Gassama checking the footage and then pointing to the spot.
However, Cueva then wasted his opportunity by blazing over the top with the distraught midfielder in tears as he left the pitch at half-time.
That penalty was the fifth awarded in only the seventh match of the tournament, with Cueva joining Argentina's Lionel Messi as the only players to have missed, after the Barcelona forward failed from 12 yards in his side's 1-1 draw with Iceland.
BBC pundit Rio Ferdinand said: "It was a clear and obvious penalty, and the Gambian referee made the right decision. But the penalty is still travelling now.
"He was the player Peru looked to in terms of creativity but his run-up was all wrong. But Messi missed a penalty earlier today and it happens to the best."
Smash-and-grab Denmark take the points
Peru were the better team in Saransk, but left with nothing as Denmark grabbed a goal on the counter-attack and then defended superbly to hold on to that lead.
It took the Europeans 27 minutes to have their first shot at goal - Thomas Delaney shooting over from 25 yards - and 39 minutes before their first shot on target when Lasse Schone, on for the injured William Kvist, shot at Pedro Gallese.
Eriksen had scored 16 times in his previous 18 internationals, including a hat-trick in the 5-1 win over Republic of Ireland in the second leg of their play-off to take the Danes to Russia, but had been subdued in the first half.
However, he was involved in the only goal of the game as he played in Poulsen, who made up for conceding the penalty with a fine finish.
Schmeichel, one of five English-based players to feature for Denmark, made a number of fine saves as he denied Flores and Jefferson Farfan.
Match-winner Poulsen also produced a vital header on the line to deny Guerrero at the end.
Peru's travelling fans are disappointed
Peru were playing in a World Cup finals for the first time since 1982, with more than 40,000 Peruvians travelling to Russia to cheer on their team.
When they qualified for the tournament, the exuberant crowd celebrations that greeted Farfan's opening goal in the play-off win over New Zealand in Lima produced enough seismic activity to trigger earthquake detection alarms in Peru's capital city.
But, despite having 17 attempts in Saransk - the most by a team without scoring so far in the 2018 World Cup - there was no goal for the Peru fans to cheer this time around.
Peru's qualification for this tournament had been fortunate as they had lost 2-0 against Bolivia in qualifying, but that result was overturned because the Bolivians fielded Paraguay-born Nelson Cabrera as a late substitute for the final 11 minutes.
Cabrera did not meet Fifa rules of eligibility and the result was given as a 3-0 win to Peru, who would have finished seventh in South American qualifying and been eliminated without those three points.
They may have been lucky to reach Russia but their performance against Denmark will have encouraged their travelling fans and they will still be hopeful of qualifying for the last 16, although they need to take their chances against France on Thursday.
Man of the match - Kasper Schmeichel (Denmark)
Another good start for Denmark - the stats
- Denmark have won four of their five opening games at World Cup tournaments, losing only to the Netherlands in 2010.
- Peru are winless in their last seven World Cup games (won none, drew two, lost five).
- Denmark have won three of their four World Cup matches against South American opponents, with the only exception being a 3-2 defeat against Brazil in the 1998 quarter-final.
- This was just Denmark's second clean sheet across their last 12 World Cup matches (also 2-0 vs France in 2002).
- Peru's missed penalty in the first half means there have already been more unsuccessful penalty attempts in this World Cup (2/5) than there were in the whole 2014 tournament (1/13, excluding shootouts).
- Denmark goalkeeper Kasper Schmeichel has kept a clean sheet in his last five appearances for Denmark. He has gone 534 minutes without conceding at international level, with his last goal shipped coming from the Republic of Ireland's Shane Duffy in November.
- Schmeichel has already kept as many World Cup clean sheets as his father Peter did in five appearances in the competition (one).
- Christian Eriksen has been involved in 17 goals (scored 12 and assisted five) in his last 14 appearances for Denmark.
'There was a great atmosphere' - what they said
Denmark coach Age Hareide: "They (Peru) did a lot to try and get an equaliser. It is now a fifth game without conceding a goal and it is very tough to play against World Cup opponents and do that."
On goalkeeper Kasper Schmeichel's performance, Hareide added: "He is acrobatic, a very quick goalkeeper and his goalline play is probably the best in the world when he is on form.
"He had a fantastic performance and it was needed. You have to acknowledge the performance of Kasper but also the defence and the whole team."
Peru coach Ricardo Gareca: "We were playing against Denmark who are truly a great side.
"There was a great atmosphere in the stadium and that means we want to perform.
"We knew we would have great support, but we didn't think there would be so many people having to travel so far."
- 13TapiaBooked at 38minsSubstituted forAquinoat 87'minutes
- 20FloresSubstituted forGuerreroat 62'minutes
- 10FarfánSubstituted forRuidíazat 85'minutes
- 6ChristensenSubstituted forM Jorgensenat 81'minutes
- 17Stryger Larsen
- 7KvistSubstituted forSchöneat 36'minutes
- 8DelaneyBooked at 86mins
- 20PoulsenBooked at 90mins
- 23SistoSubstituted forBraithwaiteat 67'minutes
- 9N Jørgensen
- 13M Jorgensen
- Bakary Gassama
- Shots on Target
Second Half ends, Peru 0, Denmark 1.
Attempt missed. Paolo Guerrero (Peru) header from the centre of the box misses to the right. Assisted by Miguel Trauco with a cross.
Corner, Peru. Conceded by Martin Braithwaite.
Yussuf Poulsen (Denmark) is shown the yellow card for a bad foul.
Yoshimar Yotún (Peru) wins a free kick in the attacking half.
Foul by Yussuf Poulsen (Denmark).
Pedro Aquino (Peru) wins a free kick in the defensive half.
Foul by Yussuf Poulsen (Denmark).
Corner, Denmark. Conceded by Luis Advíncula.
Hand ball by Raúl Ruidíaz (Peru).
Substitution, Peru. Pedro Aquino replaces Renato Tapia.
Thomas Delaney (Denmark) is shown the yellow card for a bad foul.
Foul by Thomas Delaney (Denmark).
André Carrillo (Peru) wins a free kick in the defensive half.
Attempt saved. Christian Eriksen (Denmark) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Nicolai Jørgensen.
Substitution, Peru. Raúl Ruidíaz replaces Jefferson Farfán.
Foul by Nicolai Jørgensen (Denmark).
Yoshimar Yotún (Peru) wins a free kick on the right wing.
Attempt saved. Jefferson Farfán (Peru) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by André Carrillo.