Forest had a lucky escape after 27 minutes when on-loan Aston Villa defender Alan Hutton conceded a corner when trying to head the ball back to goalkeeper Lee Camp.
Then Corry Evans' delivery was headed away from underneath his own crossbar by Elliott Ward before Hull midfielder David Meyler shot into the side-netting.
Meyler was involved in the penalty that gave Hull the lead. He was brought down inside the box by Simon Gillett and Robert Koren sent Camp the wrong way from the spot, stroking the ball into the bottom right-hand corner of the net.
Out of the blue, Forest were presented with the opportunity to equalise when they were awarded a penalty of their own for Alex Bruce's foul on Billy Sharp.
The on-loan Southampton striker made no mistake from the spot, shooting powerfully into the top corner.
Paul McShane won it for the Tigers with a close-range header after 69 minutes.