The Norwegian veteran beat world champion Mads Pedersen (Trek-Segafredo) and Cees Bol (Sunweb) in the bunch kick in downtown Nice after a crash in the final three kilometers split the peloton in half.
The 33-year-old came from around sixth wheel back having marked out stage-favorite Sam Bennett (Deceuninck-Quick-Step) in the final 500 meters. The grizzled Norwegian played the waiting game as Trek-Segafredo looked to launch Pedersen to victory before Bol unleashed his acceleration close to the barriers.
Spying the Sunweb man making his move, Kristoff jumped on his wheel and came around him with 50 meters to go to take his fourth Tour stage and first-ever yellow jersey.
"I was dreaming about winning the yellow jersey, and now it's a dream come true,” Kristoff said after the stage. "It means a lot for my career. To also have the fourth stage win means I can be up there amongst the best. I'm 33 years old and I have four kids. I still manage to perform, so I'm very happy about that."
"My run-in to this Tour has not been great. I have no results to show for," he continued. I crashed in the European championships a few days ago straight on my head. I was a bit banged up, but it didn't affect me today, so I'm very happy."
The race played out on several loops in and out of Nice and was blighted by crashes after increasingly heavy rain led to streams of runoff flowing down the twisting narrow hillside roads that punctuated the course.
As the stage played out on technical descents and city-centre streets littered with road furniture and slippery painted road markings, there were nearly ten individual crashes from touches of wheels in the nervous peloton or spills on descents.
Pavel Sivakov and Andrey Amador (Ineos), Julian Alaphilippe and Sam Bennett (Deceuninck-Quick-Step), Daryl Impey (Mitchelton-Scott), Caleb Ewan (Lotto Soudal) and Giacomo Nizzolo (NTT Pro Cycling) were among those to hit the deck in the spate of tumbles.
Sivakov, a key support rider for team leaders Egan Bernal and Richard Carapaz, looked to be particularly struggling with cuts across his hips and shoulders after crashing twice in two hours. NTT sprinter and newly-crowned European champion Nizzolo also looked to be nursing an injured wrist.
As the peloton anxiously negotiated its way through the treacherous roads, a break of three held a gap of around two minutes before finally being caught on 60km as the race approached the third and final climb of the Côte de Rimiez.
With the catch made, Tony Martin (Jumbo-Visma) played patron of the peloton and called for a calming in the pace as GC teams looked to keep leaders safe on the dangerous roads and sprint teams wanted to be sure of a fast finish.
After numerous crashes, the peloton rides the last descent neutralised (by themselves)
While Jumbo-Visma attempted to neutralize the final descent of the day, Astana continued to try to push the pace until their leader Miguel Angel Lopez slid out on a downhill bend to go face first into roadside street furniture. Even as the pace slowed, key Jumbo-Visma domestique George Bennett also fell heavily and took a long time to get back on his bike, looking shaken.
Going into the flat final 25km, the weather was clearing and the bunch was together, and so the go-slow came to an end as the race roared back into life as the action headed back to Nice.
Deceuninck-Quick-Step and Sunweb led the peloton back into town to set up a sprint as Jumbo-Visma and Ineos Grenadiers tucked in behind to keep their leaders safe.
There was a large crash under the 3km banner that split the group in half, with Thibaut Pinot among those to fall, looking dazed and hurt. As the crash came within the 3km cut off, the Groupama-FDJ leader did not lose time in the GC standings.
The sprint finale kicked off early, with Mitchelton-Scott and Bora-Hansgrohe both throwing long-range efforts with one kilometre remaining. Trek-Segafredo bought the attacks back to heel as they led out Pedersen, but Kristoff was not far behind, waiting to strike.
Kristoff had been an underdog for the stage as all eyes turned toward younger sprinters Bennett and Ewan. However, experience paid off as Kristoff was able to freelance his way to the finish to take a yellow jersey for his team, which is focussed around GC contender Tadej Pogcar.
"We have a team for the climbers and we didn't really expect to win the sprint this early on,” Kristoff said. “I felt really strong in the final kilometres, and going to the line I thought 'I'm going to win.' It was an amazing feeling and I'm really proud of what I managed to do. OK, the boys kept me safe during the stage, but in the last kilometres I was alone and I found a good wheel."
Imagery ©Kristof Ramon
Keep up to date with all the happenings of this year's Tour de France with our dedicated Tour de France Hub complete with deals on Tour ready rides and accessories and all the happenings from this year's Grand Boucle