Peru's first World Cup game since 1982 ended in heartbreak as they fell 1-0 to Denmark in the Group C opener for both teams at the Mordovia Arena in Saransk.
Yussuf Poulsen scored the only goal of the game in the 59th minute, atoning for giving away an earlier penalty, which was missed by Christian Cueva, one of a number of chances that Peru wasted.
Peru miss out on quality chances
Andre Carrillo had the first of many chances for La Blanquirroja, his rasping 20-yard drive that pushed clear by Danish goalkeeper Kasper Schmiechel.
Peru were controlling the game and were handed a golden opportunity to take the lead, Poulsen sticking his leg out, tripping Cueva. Initially the appeals were waved away by the referee but, after contacting his video assistants and his pitch-side TV, he awarded the penalty.
Cueva stepped up to the spot, did a momentary shuffle, but his adrenaline got the better of him as he hammered the penalty way over the crossbar.
Poulsen makes up for penalty giveaway, fires Denmark into the lead
The Danes were struggling to get playmaker Christian Eriksen involved, but in the 59th minute, he conjured up a moment of quality to release Poulsen, who took one touch with his right foot and finished with his left, finishing into the bottom corner.
Two minutes after Poulsen's goal, Edison Flores found space on the left and hit the ball with power, but Schmeichel was excellent again, saving with his forearm to deny Peru an equaliser.
Schmeichel produces key late saves to preserve Danish victory
Captain Paolo Guerrero was curiously left on the bench, but in the 62nd minute, he was introduced. The striker nearly produced a leveller on 79 minutes but his clever back-heel spun wide of the post.