The Flying Eagles were the first to go close when Aminu Umar got in behind the Uruguayan defence, but Kayode could not turn the ball home. The likes of Lopez and Giorgian De Arrascaeta were struggling to find their rhythm, while Nigeria faired little better as the first half failed to ignite.
With the half-time break looming, Nigeria finally brought a save from Guillermo De Amores. A cross from Shehu found Umar at the far side of the box, but his well-controlled, side-footed volley was straight at the keeper. The Africans suffered a major blow shortly after as the game suddenly sparked into life, with Shehu receiving a straight red – seconds after being shown a yellow card – for a reckless challenge on Diego Laxalt.
Uruguay had a great chance to take the lead when Laxalt's bouncing volley after half-time almost beat Chukwunenye Okani, before Guillermo Varela hit the inside of the post – but was ruled offside. De Arrascaeta was next to test the keeper, firing in a 30-yard free-kick, which the keeper palmed over.
The one-way pressure continued against the ten men and it finally told. De Arrascaeta swung another free-kick into the area and when Gaston Silva got to the ball ahead of Okani, Lopez was on had to tap in.
However, Nigeria clearly had not read the script as Kayode scored a stunning equaliser. Carrying the ball from the halfway line, he drove at a Uruguay defence that continued to back off before turning on to his right foot and thundering home from the edge of the area. Seconds later, Olaitan Michael rippled the side-netting with another effort from range.
It now looked to be anyone's game, but Uruguay took control after a misjudgement by Okani after getting into a foot race for a loose ball with Diego Rolan. The Bordeaux man beat him to the ball and skipped past him, before being brought down by Onyinye Ndidi in the box. Lopez stepped up and, cool as anything, chipped what was a match-winning Panenka penalty beyond the keeper.