City threw away a 3-1 lead as they went down 4-3 in a topsy-turvy match which saw both sides score two penalties.
James Maddison hit a first-half hattrick – including two penalties – to put Norwich 3-1 up after going a goal behind, but Hull drew level immediately after the restart from a controversial penalty, before Harry Wilson sealed the win for the hosts.
Daniel Farke made two changes to the side that drew at home to Nottingham Forest on Tuesday. Nelson Oliveira was recalled, while Marley Watkins started on the right. Dennis Srbeny and Josh Murphy both dropped to the bench.
Hull had two early chances. In the third minute Jarrod Bowen split the defence open with a terrific through-ball to put Markus Henriksen in, but he could only side-foot his effort straight at Angus Gunn.
A minute late and Norwich breathed another sigh of relief as Bowen swept in a cross from the right and Abel Hernandez headed straight at Gunn from 10 yards.
City didn’t heed those warnings though, and in the sixth minute were made to pay. Wilson ran at the City backline before playing in Jackson Irvine on the left of the area, and he slotted the ball past Gunn into the far corner to give Hull a deserved lead.
Oliveira had City’s first effort a couple of minutes later, cutting in from the right and curling a left-foot shot just wide of the top far corner of David Marshall’s goal.
Hull kept coming, and the lively Wilson dribbled his way into the area on the left but his shot was tame and straight at Gunn.
City made Hull pay for their missed chances in an extraordinary two minutes.
First, Oliveira was clattered right on the edge of the area by Marshall. Referee Tim Robinson initially awarded a free-kick to City, but the assistant referee overruled him to award a penalty – with a large divot in the area where Marshall slid in backing up the decision. Maddison stepped up and coolly slotted the ball into the right corner to level things.
A minute late and Norwich had turned things around. Maddison picked the ball up on the left edge of the area, came outside Ola Aina and then sold him a dummy to move the ball on to his left foot, and he drove it under Marshall to give City the lead in a breathless opening 20 minutes.
City were forced into a change in the 29th minute, with Moritz Leitner limping off. Harrison Reed moved into central midfield, with Ivo Pinto coming on at right-back for his first appearance since mid-January.
Another crazy couple of minutes saw a goal for either side.
Oliveira clipped in Onel Hernandez on the right of the box but with his back to goal he was going nowhere. But Ondrej Mazuch kicked him from behind and the referee had no choice but to award a penalty, which Maddison once again put in the corner for a sensational first-half hattrick.
However, City threw away their two-goal advantage a minute later in similar fashion. Jamal Lewis barged Jarrod Bowen in the box, and Hernandez stepped up to reduce the deficit to one with five minutes of the half remaining. It was an error of judgement that City would be left to rue.
Hull were back into it straight after the break, and once again it was from the penalty spot.
City had cleared a free-kick, but Alex Tettey was penalised for pulling Dawson’s shirt off the ball. Dawson didn’t appeal, but, much to the players' surprise, the referee pointed to the spot. Hernandez blasted the penalty into the roof of the net to level the game.
The match started to break up after that, with both sides struggling to string passes together as the game approached the hour mark.
The match caught alight again in the 63rd minute when Gunn was forced into a double save. Bowen cut in from the right and shot with his left, looking for the far corner, but Gunn got down quickly to push it away. Substitute Fraizer Campbell pounced quickest, but Gunn did brilliantly to spread himself and save at point-blank range.
Six minutes later and City should have been ahead. Hernandez beat his man on the left, played a deft one-two with Maddison in the area but Hernandez's touch was too heavy as he looked to shoot and Marshall came out to smother the chance.
Three minutes later and Hull were ahead. They broke from a City corner, Wilson received it in the box on the right, dropped his shoulder and hammered the ball past Gunn into the far corner.
As Hull began to drop deeper Daniel Farke made a double change on 79 minutes, introducing Wes Hoolahan and Murphy for Hernandez and Reed.
City should have levelled it in the 90th minute. Murphy and Pinto combined well on the right, and Pinto fired a terrific cross into the box but Hanley powered his free header straight at Marshall.
That was the final chance for City, and they were beaten for the first time in eight matches.