Kristoff and Niki Terpstra (Etixx-QuickStep) had attacked in the final 30km of the race, with Norwegian Kristoff's superior finishing speed getting the better of Dutchman Terpstra on the line in Oudenaarde.
Greg Van Avermaet (BMC) came in for third ahead of Peter Sagan (Tinkoff-Saxo).
It's Kristoff's 10th victory of the year, fresh from three stage wins and the overall victory in the Three Days of De Panne during the week. He is now the rider with the most victories so far in 2015. It's also Katusha's second big success of the spring after Luca Paolini won Ghent-Wevelgem last Sunday.
After a few early attacks, the day's escape group formed up in the opening 20km under sunny, clear skies, consisting of Matt Brammeier (MTN-Qhubeka), Clément Venturini (Cofidis), Damien Gaudin (Ag2r), Dylan Groenewegen (Roompot), Ralf Matzka (Bora-Argon 18), Lars Bak (Lotto-Soudal), Marco Frapporti (Androni) and Jesse Sergent (Trek).
Brammeier took the first major prize of the day, winning his body weight in beer at an intermediate sprint at the 33.6km point.
Venturini was the first to get dropped out of the break, but Sergent's race hit an untimely and unnecessary end as he was clipped by a Shimano neutral service car and came down heavily, breaking his collarbone. A Shimano vehicle was later involved in a pile-up with an FDJ car, taking out one of the team's riders.
Bradley Wiggins (Sky) also got caught in a crash on a corner, and swapped his new Pinarello Dogma K8-S suspension 'cobble bike' for a regular model. A short while later, he pulled up at the side of the road and swapped back to the K8-S. He worked his way back up through the peloton to work for his Sky team-mates but did not contest the finale as he eyes next Sunday's Paris-Roubaix.
As the escape group continued, Andre Greipel (Lotto-Soudal) put in a surprise attack on the Molenberg with 116km to go. He broke clear of the peloton, but soon found himself in no-man's land without company and eased back into the bunch. Greipel would later help to animate the race on several climbs, and aid chasing back attacks for his Lotto-Soudal team.
By 50km to go, and the early break mopped up, the peloton had split up, with a group of contenders and their key team-mates upping the pace at the front of affairs.
Sky and Lotto-Soudal took up most of the pace-setting during a flurry of attacks, but it took Terpstra and Kristoff to create a dangerous move as they attacked within the final 30km just after the Kruisberg, opening up a gap of 30 seconds.
Thomas attacked on the Kwaremont to try and drop the rest of the chase group and catch the leaders - but he was marked by Zdenek Stybar, who became a passenger with his Etixx team-mate Terpstra up front.
Thomas and Stybar were then caught by the rest of the chasers, and the pace dropped - this played into the hands of Terpstra and Kristoff up front, who hit the final climb of the Paterberg with 30 seconds in hand.
At the top of the Paterberg, Van Avermaet and Sagan managed to gap the remainder of the chase group, including Thomas, as they pursued Terpstra and Kristoff with 13km to go. It was down to Thomas to do much of the work to try and get back in touch, but it seemed a tall order for the Welshman and the chase group never regained contact.
Terpstra and Kristoff worked hard to maintain a gap over Sagan and Van Avermaet, and in the end Kristoff's stronger legs and sprint ability were too much for 2014 Paris-Roubaix champion Terpstra, who had to settle for second place.
Thomas finished the day outside the top 10, in 14th place, and later described it as 'not the best day on the bike'.
Tour of Flanders 2015, 264.2km
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 (Swi) IAM Cycling
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1