Captain Lukas Podolski notched his 11th goal of the season and Novakovic scored twice late in the game after Portuguese midfielder Petit struck with a powerful free-kick on 36 minutes.
Cologne, who were stuck in the relegation zone for much of the season, scored their sixth consecitive home win to move up to 10th on 32 points. Hanover remain in third place on 47.
League leaders Borussia Dortmund, on 61 points, travel to Hoffenheim on Saturday while second-placed Bayer Leverkusen, on 49, take on Mainz 05 on Sunday.
Cologne were on the back foot early on with Hanover twice coming close but goalkeeper Michael Rensing, who has been spectacular since joining in the winter, was alert.
The hosts needed a set piece to take the lead as Petit delivered an unstoppable low drive from 20 metres.
Hanover substitute goalkeeper Florian Fromlowitz made a double save to avoid an own goal four minutes after coming on for injured Ron-Robert Zieler in the 56th minute as Cologne quickly took control in the second half.
But he had no chance when Podolski rounded him four minutes later to double the lead.
Novakovic also made it 11 goals for the campaign with a tap-in after 79 minutes and a header just before the final whistle.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.