The 32-year-old edged out Italian Sonny Colbrelli at the end of the 202km ride from Marburg.
Kristoff is now 10 seconds clear of Colbrelli at the top of the overall standings, with Belgium's Yves Lampaert third, two seconds further adrift.
Julian Alaphilippe and Vincenzo Nibali, who finished safely in the peloton, were among those to attempt unsuccessful breakaways.
"The stage was a bit crazy," said Alaphilippe, who last month thrilled his home fans by leading the Tour de France for long periods before finishing fifth. "It went all the way, it was a lot of fun."
Australian Caleb Ewan, who won three stages on this year's Tour de France, retired from the race suffering from a "sore throat", his team Lotto-Soudal said.
Saturday's penultimate stage runs 189km from Goettingen to Eisenach and features three categorised climbs.