Mario Mandzukic caused havoc in the box to create the opener, his header put into his own goal by unfortunate Super Eagles midfielder Oghenekaro Etebo.
The African side worked tirelessly to get back into the game but a cataclysmic error by defender William Troost-Ekong handed Croatia the chance to win it late on, with Luka Modric making no mistake from 12 yards to seal three points.
Here we look at three talking points from the game.
Dalic dices with danger
Zlatko Dalic made an extremely bold move when he took over a flagging Croatia qualifying campaign last October, one that was drifting and prompted the powers that be to act and replace Ante Cacic.
It worked instantly as Croatia got back on track with two wins and a draw which saw passage to Russia secured.
Surprisingly, he switched back to the tried and tested for their 2018 World Cup bow as Ante Rebic came in. It at least worked in the sense the Eintracht Frankfurt flyer made his mark going forward, with more dribbles (two), crosses (four) and aerials won (five) than any team-mate.
Yet, with Modric pushed further back, Croatia’s craft in attack was stunted while Nigeria’s energetic midfield swarmed around the Barcelona and Madrid stars.
Individual errors ground the Super Eagles
The talk before this game had surrounded how a game between a vastly-experienced Croatia, packed with players boasting stacks of caps, and one of the youngest squads in the tournament but brimming with pace and trickery, would play out.
It turns out that knowhow and ability to put in a performance when it truly matters came into play – with Mandzukic playing a vital part in the opening goal and Modric sealing victory.
For the Super Eagles, meanwhile, lapses in concentration and individual errors cost them dearly.
First, a sleeping Etebo allowed Mandzukic to steal in ahead of him for the opener, the Juventus striker’s header crucially taking a deflection off the 22-year-old new Stoke City signing and creeping past teenage goalkeeper Francis Uzoho.
Then, Troost-Ekong, 24, inexplicably manhandled Mandzukic in the box for the clearest of penalties and Modric fired into the bottom corner to settle it. A valuable lesson for the fledgling Super Eagles.
A win is a win
Croatia’s players probably never envisaged their superb World Cup debut later becoming a burden to future generations.
But since that famous third-place finish at France 1998 – where they won five of seven games – Vatreni have tasted victory just twice in their following nine matches and haven’t gone beyond the group phase.
They had won only one of their last seven World Cup games (drawn two, lost four), a 4-0 thrashing of Cameroon in Brazil four years ago a distant memory – so a victory of any sort is the main takeaway from this game and one that should be cherished.
Despite the morose method of this win, they have put themselves in the driving seat for the knockout stages, with heavyweights Argentina to come and industrious Iceland.
And with such a star-studded attack at their disposal, surely performances will only improve as the tournament progresses.
Brazil take on Switzerland in their opening World Cup clash on Sunday with Tite’s men installed as favourites to lift the trophy by many.
Coach Tite said star player Neymar is not fully fit but believes his captain is in good shape ahead of their World Cup opener.
Brazil were impressive in qualifying for the tournament, winning 12 out of their 18 matches to top the South American group.
Here’s a statistical preview of their clash.
Yussef Poulsen proved their matchwinner when he put away Christian Eriksen‘s pass in their one true moment of quality. But Peru will look back at a missed penalty in the first half, with Christian Cueva blazing high over the bar when he could have put the South Americans ahead.
Here we analyse the performance of the Peru players.
Pedro Gallese – 7:
A solid show from the South American stopper, stood up superbly to thwart Christian Eriksen’s late effort.
Luis Advincula – 8:
A rock defensively, his sublime block of Nicolai Jorgensen’s late effort was superhuman. He was always in the thick of the action and never looked like tiring.
Christian Ramos – 7:
Dealt well with the threat of Denmark’s big man, Jorgensen. Solid and sound throughout.
Alberto Rodriguez – 8:
A hulking presence at the back and was also a menace in the opposition box at every set-piece.
Miguel Trauco – 6:
Was able to pour forward in attack, while keeping track of Eriksen as the Tottenham man was largely kept quiet.
Renato Tapia – 6:
The 22-year-old didn’t look overawed on the big stage and bustled around the park with intent.
Yoshimar Yotun – 6:
One of the most experienced players in this Peru side and remained steadfast and gave Tapia room to push on.
Andre Carrillo – 8:
A livewire performance, never giving the Danish defence a moment’s peace. Stung Schmeichel’s hand early on, but won’t want to see his clumsy miss when teed up by Cueva.
Christian Cueva – 7:
The Sao Paulo schemer had a fearsome reputation coming in and solidified that, including four key passes, although tainted by woeful penalty.
Edison Flores – 5:
Buzzed about up front but lacked the killer touch, replaced by talisman Guerrero minutes after wasting a glorious chance created by Cueva.
Jefferson Farfan – 7:
This was a performance full of ferocity and energy that Al Jazira fans won’t recall seeing from him.
Paolo Guerrero – 7:
Instantly livened up Peru’s forays forward when he came on.
Raul Ruidiaz – N/A:
Gave Farfan a breather, no time to contribute.
Pedro Aquino – N/A:
Came on at the death as Peru tried in vain to equalize.