Dumfries, the PSV Eindhoven full-back, headed in a cross from substitute Nathan Ake to complete a madcap second half after the home side eased into a two-goal lead and then threw it away.
Captain Georginio Wijnaldum and Wout Weghorst both scored before the hour mark at the Johan Cruyff Arena, only for Andriy Yarmolenko and Roman Yaremchuk to briefly restore parity for Ukraine.
Frank de Boer’s side got there in the end and the victory provides a major lift to the Netherlands after their first game at a major competition in seven years.
“I thought we were very balanced and dominated the game so we would like to see the same again going forward. We can be proud,” insisted De Boer.
🇳🇱 Flying Dutchman Denzel Dumfries wins the prize after inspiring the Netherlands to victory 👏@Heineken |… https://t.co/sNicjFh48z
— UEFA EURO 2020 (@EURO2020) 1623618918000
They will now hope to build on it on Thursday against Austria, who beat North Macedonia earlier in the same Group C.
It was a brilliant game, and a crowd of around 16,000 created an atmosphere fit for the occasion at the home of Ajax, where supporters held up banners with messages of support for Christian Eriksen following the Denmark star’s cardiac arrest on Saturday.
Eriksen played for Ajax before moving to Tottenham Hotspur in 2013 and several Dutch players remain close to the midfielder.
Defender Daley Blind played with him in Amsterdam and needed heart surgery himself in 2019 after being diagnosed with myocarditis. He was in tears as he was substituted in the second half.
“Daley was quite emotional because he had some problems with his own heart,” De Boer said. “Even now Christian is one of his best friends and it is normal that there were lots of emotions.”
After failing to qualify for Euro 2016 or the 2018 World Cup, the Netherlands were playing their first game at a major competition since coming third at the 2014 World Cup.
🥳 What a moment for Denzel Dumfries! 🇳🇱 First international goal = opening game winner 💪#EURO2020 https://t.co/K5LlxE05Lc
— UEFA EURO 2020 (@EURO2020) 1623617609000
They had not won a game at a Euro in 13 years, since a 2-0 win over Romania at Euro 2008.
The emergence of the likes of Frenkie de Jong and Matthijs de Ligt has given supporters of the Oranje hope for the future.
Those supporters were in fine spirits ahead of the game, bedecked in orange as they filled the bars around the ground in the blazing sunshine, thoughts of the pandemic appearing far away.
Yet Dutch optimism has been tempered by selection problems facing De Boer.
Juventus defender Matthijs De Ligt missed this game as he recovers from a groin injury, while Virgil van Dijk is not at the tournament at all.
Manchester United’s Donny van de Beek withdrew from the squad and goalkeeper Jasper Cillessen was left out altogether after testing positive for Covid-19.
🚀 Will there be a better goal than THIS Andriy Yarmolenko golazo in the first round of [email protected] |… https://t.co/BifQAjvsRT
— UEFA EURO 2020 (@EURO2020) 1623623125000
De Boer has switched to a 3-5-2 formation and has real stars in Barcelona midfielder Frenkie de Jong and Memphis Depay up front.
The system has helped Wijnaldum — who has signed for Paris Saint-Germain — add a goal-scoring threat from midfield while Dumfries was a constant threat down the right.
He should have scored late in the first half with a free header, after Ukraine goalkeeper Georgiy Bushchan produced a fine save to keep out a Wijnaldum volley.
The hosts got their reward shortly after the restart when Bushchan turned a dangerous low ball by Dumfries out into the path of Wijnaldum who fired home.
Weghorst then lashed in a loose ball after more good play by Dumfries, and the Netherlands seemed to be on easy street.
Goalkeeper Maarten Stekelenburg, at 38 the oldest player ever to represent the Netherlands at a major tournament, had not had much to do but then he was beaten in the 75th minute by a brilliant curling strike from Yarmolenko.
Yaremchuk then headed in a Ruslan Malinovskyi free-kick and Ukraine looked set to leave with a draw, but then Dumfries appeared.
“It is upsetting to lose like that at the end but not a tragedy,” said Ukraine coach Andriy Shevchenko. “We still have two games to go.”