Goals from Jeremy Menez and Yohan Cabaye gave Laurent Blanc’s side a deserved three points in Donetsk, as they extended their unbeaten run to 23 matches.
With torrential rain and lightning engulfing the Donbass Arena, Dutch referee Bjorn Kuipers suspended play with just over four minutes gone.
It was the first time in the 62-year history of the European championship that a game was temporarily suspended, with the players off the field for 56 minutes.
Neither side could create any clear-cut chances in the opening 20 minutes, with Menez coming closest for the French.
After neat build-up play, the winger was adjudged to be in an offside position – with replays proving the right decision was made.
Ukraine were also trying to push forward and soon after, Andriy Yarmoleko made a driving run towards the box, but could only produce a weak effort on goal.
Menez continued to look threatening and he had two chances in quick succession as the 30-minute mark approached.
First, Franck Ribery seized on some indecisive defending to set him up, but the Paris Saint-Germain man could only blast his shot over the top.
Anatoliy Tymoshchuk’s poor backward pass led to the same combination linking up moments later, but Andriy Pyatov got down well to deny the 25-year-old.
Veteran skipper Andriy Shevchenko came closest for the co-hosts on 35 minutes – but his powerful effort was blocked by goalkeeper Hugo Lloris.
France continued to have the better opportunities though and Pyatov proved to be at his best moments later.
After Samir Nasri’s curling free-kick delivery, the Shakhtar Donetsk goalkeeper showed a strong pair of hands to keep out a powerful Philippe Mexes header.
Ukraine were without a win against their opponents in the last six meetings, with three draws and three losses, but they were inches away from opening the scoring on 49 minutes.
After receiving a pass on the left wing, Shevchenko cut inside Adil Rami and unleashed a long-distance shot, which went agonisingly over the bar.
Despite a bright beginning to the second period, the raucous home supporters were silenced on 53 minutes as Blanc’s team deservedly took the lead.
Another searching run from Ribery ended with the ball finding the run of Menez, and the latter’s low shot beat the goalkeeper at the near post.
The stuffing was well and truly knocked out of the hosts soon after, as Les Bleus ruthlessly extended their advantage.
Karim Benzema’s through-ball found Newcastle midfielder Cabaye in the box and after a fortuitous deflection off Oleh Gusev knocked it into his path, the 26-year-old’s left-foot effort found the net.
Incredibly, this meant that the Real Madrid striker became the fourth player to get two assists in a Euro 2012 match, following Andrei Arshavin, Bastian Schweinsteiger and David Silva.
Ukrainian fans were whistling after their team seemingly allowed the French to craft out the perfect opportunity and the lead was nearly trebled on 66 minutes, but Cabaye’s shot struck the outside of the post.
Following this defeat, Oleh Blokhin’s side now face a must-win encounter against England in this venue on Tuesday evening.
MORE: Man United latest news
MORE: Arsenal latest news
MORE: Chelsea latest news
MORE: Liverpool latest news