Nick Proschwitz scored twice in the final 15 minutes, including a last-minute winner, to ensure that Ipswich could not end a run of nine games without a win.
Hull had several chances in the opening quarter of an hour as the lowly Blues started on the back foot.
Abdoulaye Faye saw two headers almost find the net before Ipswich left-back Aaron Cresswell sliced into the path of Seyi Olofinjana, who skied high over the bar.
Sone Aluko had perhaps the best chance on 14 minutes when he was set through one-on-one and denied by new Ipswich loanee keeper Stephen Henderson.
Visiting Ipswich took a surprise lead with their first shot of the match just before the half-hour mark when Jay Emmanuel-Thomas held off a couple of challenges before lashing home from a tight angle.
Faye again won a header three minutes into the second half and was denied by Henderson, who tipped the header onto the bar and over.
Ipswich were in a more confident mood than at the start of the first and Lee Martin forced Ben Amos into a save before DJ Campbell poked wide from a one-on-one chance.
Paul Jewell's men couldn't hold out as Ahmed Elmohamady beat Daryl Murphy down the right and crossed for substitute Nick Proschwitz to smash home from close range.
The tide turned and Hull were the side pushing for a winner as Stephen Quinn struck the post with a low shot before a series of penalty box melees just stayed out.
Hull won it at the death thanks to £2.6m signing Proschwitz. The German outjumped Carlos Edwards at the back post and beat Henderson with a header.
Defeat for Ipswich means they have won just one match in their last 17 outings and have failed to win the last four after going 1-0 ahead.