Enrico Gasparotto (Bahrain Merida) was third, the fastest man in the final selection falling just two seconds short after a desperate chase from the second group.
That second group contained four pre-race favourites including Peter Sagan (BORA-hansgrohe), Alejandro Valverde (Movistar), Tim Wellens (Lotto Soudal) and Julian Alaphilippe (Quick-Step Floors), all dropped by Valgren and Kreuziger in with two kilometres to go.
"It was a hard start and then the breakaway got a really big gap, but we had Laurens de Vreese in the front to close this gap, he did a great job," Valgren said.
"The other riders kept me out of trouble, it was perfect teamwork during the whole day. In the final Jakob Fuglsang worked hard for me, he made all the other riders tired and after that, I could attack and I’m happy that I could finish it like this."
As expected, an early breakaway formed and the nine frontrunners went on to build a lead of over 15 minutes.
It took the efforts of Valverde's Movistar team to reel in the earlier escapees, and that set the stage for a war of nerves between the key remaining contenders.
With two riders in the final selection, Astana had cards to play and Valgren, who was second in 2016, took a back seat while team-mate Jakob Fuglsang helped to keep Valverde, Sagan, Alaphilippe and Wellens in check.
When Valgren did attack the bunch looked to Paris-Roubaix winner and world champion Sagan to close the gap but he either refused to do the work or could not after his winning effort the week before.
Kreuziger was the rider to make the effort and latched on to Valgren with the pair opening a gap that proved enough for the pair to take the race to the finish.
“It was a long final 40kilometres and I spent some extra energy off the front with Enrico Gasparotto and maybe Michael Valgren had something more in the final, but our goal was to be on the podium and we achieved that," Kreuziger said.
“It’s a pity to lose because it’s a big classic and I would like to win again after five years since the last time. We knew the guys behind were closing pretty quick and there were some fast guys in there, but chapeau to Michael he showed his class today.
“If I arrived at the sprint with Sagan or Alaphilippe I would be fifth or sixth and that was not our goal we wanted to show our jersey and do our race and I think we did in the best way that we could."