Germany will face Qatar, the 2015 runners-up, for a place in the quarter-finals on Sunday.
The two sides met at the Rio Olympics last year when Germany raced to a 34-22 win in the last eight.
Germany's win against Croatia was their first since 2002 and revenge for defeats in the world championship final of 2003 and the Olympic Games in 2004.
"I thank the German fans for such great support and the people in Rouen, who were great hosts," said Germany coach Dagur Sigurdsson.
"We have shown a strong team performance in defence and attack, we were competitive, we played tactically well and only in some periods we had problems but we came out stronger.
"Now nothing is won so far, now the tournament starts to get exciting."
Croatia finished second in the pool and will next take on Egypt, who were defeated 33-26 by Sweden in their last Group D game.
Sweden finished second in the pool behind Olympic champions Denmark who wrapped up their group campaign with a 32-29 victory against Qatar.
The Danes, for whom 36-year-old pivot Jesper Noddesbo scored eight goals, also finished the first round undefeated.
Niclas Ekberg was Sweden's top scorer against Egypt with eight goals while goalkeeper Andreas Palicka pulled off 14 saves,
Belarus claimed the final qualifying spot in Group C by beating already-qulified Hungary 27-25.
Hungary ended the pool in fourth spot and must face Denmark for a quarter-final spot.