The Katusha rider outsprinted Etixx-QuickStep's Niki Terpstra at the end of the 99th edition of the 264.9km classic from Brugge to Oudenaarde.
BMC's Greg Van Avermaet finished third, just ahead of a spent Peter Sagan (Tinkoff-Saxo) and the rest of the peloton.
It was a sunny start to race day and the peloton was spared the wet and cold weather that has been a feature to the majority of the Northern races this season.
Matthew Brammeier (MTN-Qhubeka), Jesse Sergent (Trek Factory Racing), Damien Gaudin (AG2R), Ralf Matzka (Bora), ClÃ©ment Venturini (Cofidis), Dylan Groenewegen (Roompot), Lars Bak (Lotto-Soudal) and Marco Frapporti (Androni) made the major break of the day, but the effort, while sustained, was doomed to end badly.
The lead bounced around from five to six minutes as the terrain undulated, with the only moments of interest coming from the tribulations of Bradley Wiggins who swung off the back of the chasing pack after stopping twice for a bike change. He eventually recovered but was never a factor in the race.
Of the riders in the break, Brammeier had the most success, winning his weight in beer at the 31km marks as the first rider to pass through the village of Sant Eloois Winkel, where the Stene Winkel brand is brewed.
Sergent was was not so lucky after he was knocked down by the neutral service vehicle with 104km left to go. The New Zealander was immediately forced to abandon the race with a suspected broken collarbone.
He was not the only rider to suffer at the hands of reckless driving. FDJ's Sebastian Chavanel was another unintentional victim after a different neutral support vehicle rear ended his team car as he was receiving support.
The race was riddled with punctures and mechanicals as pre-race favourites like Sagan, Luca Paolini (Katusha) and John Degenkolb (Giant-Alpecin) were forced to request assistance before working their way back to the bunch.
After the break was snuffed out the race settled into a period of fruitless attacks, catches and regroupings, and as expected the first serious cull occurred on the Koppenberg but all of the favourites remained in proximity to one another.
The Taaienberg cut the numbers further with approximately 25 riders stretched out along the road to the final ascents of the Oude Kwaremont and the Paterberg. The biggest casualty was Sep Vanmarcke (LottoNL-Jumbo) who desperately attempted to bridge to the front group but just fell short with their wheels in sight.
Terpstra and Kristoff engineered an escape from the 25 strong group which appeared impotent in organising a chase. Finally frustrated with the lack of organised effort, Sagan and van Avermaet committed to a chase with 15km to go.
Their determined effort failed with Kristoff and Terpstra in sight and almost at the finish line. Terpstra tried to steal a gap on Kristoff, but he had better position and speed and rode past his rival unchallenged in the final metres.
"I knew to follow Niki when he went," said Kristoff.
"Once we got away we worked well together and I convinced him to work with me to the finish, knowing the worst he would get was second place. He tried to drop me on the Kwaremont and I was suffering there, but I'm actually quite good in these cobbled climbs. I felt I had him under control on the Paterberg, but in truth you never know. I didn't let him go because I knew he was strong. I'm happy I managed to go with him and no one came up behind us. I'm a fast finisher so I'm happy I could win."
(Niki Terpstra, Alexander Kristoff and Greg Van Avermaet - Getty)
Tour of Flanders: 264.9km, Brugge - Oudenaarde
1 Alexander Kristoff (NOR) Katusha
2 Niki Terpstra (NED) Etixx-QuickStep
3 Greg Van Avermaet (BEL) BMC
4 Peter Sagan (SVK) Tinkoff-Saxo
5 Tiesj Benoot (BEL) Lotto-Soudal
6 Lars Boom (NED) Astana
7 John Degenkolb (GER) Giant-Alpecin
8 Jurgen Roelandts (BEL) Lotto-Soudal
9 Zdenek Stybar (CZE) Etixx-QuickStep
10 Martin Elmiger (SUI) IAM