Aston Villa boosted their Champions League hopes and dealt Hull's survival chances a potentially fatal blow with a deserved victory at the KC Stadium tonight.
Gabriel Agbonlahor benefited from some calamitous Hull defending to put the visitors ahead in the 13th minute but only Kevin Kilbane will know how he failed to draw the Tigers level midway through the first half.
The crucial second goal arrived 15 minutes from time, James Milner picking himself up to convert from the penalty spot after he had been fouled by George Boateng.
Hull were, however, grateful for news Jan Vennegoor of Hesselink had regained consciousness after being knocked out in a challenge with Richard Dunne at the start of the second half.
Both managers named unchanged teams, meaning Tigers boss Iain Dowie again chose to play with only Vennegoor of Hesselink up front despite criticism from some fans for a perceived negative approach.
The early stages were bossed by Villa but it was Kilbane who failed to take advantage of the first decent opening after nine minutes, sending his shot well over when the ball fell nicely to him 15 yards out.
The Tigers have struggled at both ends of the pitch this season and they presented their opponents with the opening goal in the 13th minute.
First Ibrahima Sonko and then Paul McShane saw their attempted clearances charged down and Agbonlahor curled a pinpoint shot into the top corner from a tight angle.
Hull were rocking and it could have been two moments later when Stiliyan Petrov's deflected shot flew just past a post. The Bulgarian was finding plenty of space and he sent another effort over the bar.
Having been under the cosh, Hull squandered an unbelievable opening in the 24th minute. Kilbane played in Vennegoor of Hesselink but Brad Friedel blocked his effort from eight yards.
The ball fell to Kilbane, who first had a shot saved by Friedel, then, having retrieved the ball with only James Collins to beat on the line, saw his second attempt deflected over the bar via the defender's arm.
A foul by Agbonlahor on Kilbane in the 36th minute gave Andy Dawson a chance to curl a free-kick in with his left foot from 20 yards out but it was easily dealt with by Friedel.
Hull had another glorious opening within two minutes of the restart. A long throw from Sonko found its way to defender Steven Mouyokolo right in front of goal but he scuffed his shot and Friedel pushed the ball over the bar.
There was then a lengthy break in play after Dunne clashed heads with Vennegoor of Hesselink from the subsequent corner. Referee Mike Dean signalled immediately for medical assistance and, while Dunne was quickly back on his feet, Vennegoor of Hesselink was treated on the pitch for some minutes before being carried down the tunnel, with Jozy Altidore coming on.
McShane almost cost his side a second goal on the hour when an ill-advised backpass looked to have played in John Carew but Duke just managed to clear, with Petrov miscuing an ambitious effort when the ball fell to him on halfway.
Hull continued to press forward in search of the goal they so desperately needed and Mouyokolo headed a corner wide of the far post. But they lacked the creativity to consistently get in behind Villa and the frustration of the crowd was growing.
Meanwhile, the visitors were a constant threat on the break and Agbonlahor fired in a shot from 15 yards which was tipped over the bar by Duke.
In search of some much-needed guile, Dowie sent on Geovanni for Cairney. But Hull's night took another turn for the worse in the 75th minute when a speedy Villa break ended with Boateng fouling Milner in the area.
Dean had no hesitation in pointing to the spot and Milner easily beat Duke, placing his kick into the bottom corner.
Hull were committing everyone forward now and were lucky not to be three down almost immediately as Villa squandered a three-on-one break.
Ten minutes of injury-time gave the home side some hope but they could not find the breakthrough and will go into their remaining three games three points from safety and with a vastly inferior goal difference.Reuse content