Sam Vokes had given the visitors an early lead, but Jarrod Bowen scored twice in the space of seven second half minutes to turn things around as the Tigers recorded three points.
The Hull City side showed two changes to the one that started at Barnsley the previous week. Leonardo Da Silva Lopes replaced George Honeyman in midfield, while Tom Eaves came into the attack with Josh Bowler making way.
Stoke had a trio of former Tigers in their squad with Sam Clucas and Tom Ince in from the start, and Nick Powell included on the bench.
Eaves headed a difficult chance from Eric Lichaj’s cross wide early on, but it was Stoke that took the lead seven minutes in. The visitors made easy progress down their left before James McClean crossed for Vokes to head past George Long.
Daniel Batty dragged a shot wide from the edge of the box as the Tigers threatened a quick equaliser, with Kamil Grosicki then bringing a decent save out of Jack Butland.
Bowen was also denied by Butland as the home side looked to step up a gear midway through the half, and Jordy de Wijs headed a chance over from Bowen’s free kick delivery.
The Tigers were passing and probing without really getting anywhere against a Stoke side happy to sit in and defend their lead, and a frustrating half came to an end with one last chance as Eaves directed a Grosicki corner into the hands of Butland.
It took just four minutes of the second half for the home side to end that frustration. The ball fell to Bowen 20 yards out and he fired a low shot past Butland into the bottom corner of the net.
And it was Bowen at the double as he gave the Tigers the lead in the 56th minute. Lichaj’s cross to the far post was met by the head of Jackson Irvine and when his effort was pushed out by Butland, it dropped for Bowen who finished from close range.
Eaves controlled Callum Elder’s cross well inside the box before turning and firing a shot over the bar, while at the other end Long made a near-post save to keep out Bruno Martins Indi’s header.
A first change for the home side came six minutes from time as Bowler replaced Grosicki, while a second saw Ryan Tafazolli come on for Eaves to give the home side an extra man at the back with Stoke launching balls forward.
There were no late scares, though, as the Tigers held on for the win.
Hull City: George Long; Eric Lichaj ©, Reece Burke, Jordy de Wijs, Callum Elder; Daniel Batty, Leonardo Da Silva Lopes, Jackson Irvine; Jarrod Bowen, Kamil Grosicki (Josh Bowler 84), Tom Eaves (Ryan Tafazolli 89).
Subs Not Used: Matt Ingram, George Honeyman, Stephen Kingsley, Matthew Pennington, Keane Lewis-Potter.
Stoke City: Jack Butland, Tom Edwards, Danny Batth, Bruno Martins Indi, Stephen Ward, Ryan Woods (Badou Ndiaye 72), Joe Allen, Sam Clucas, Tom Ince (Nick Powell 82), James McClean (Lee Gregory 62), Sam Vokes.
Subs Not Used: Adam Federici, Ryan Shawcross, Mame Diouf, Jordan Cousins.
Referee: Mr D. Bond.