After a cagey opening to the contest, it took until the 15-minute mark for the Vikings to post their first points of the afternoon.
Danny Craven who stepped and dummied his way through a gap in the Cougars defensive line to touch down under the posts.
The try was converted to make it 6-0, but Keighleys response was swift and we drew level through some fantastic footwork from Dane Chisholm to put his half back partner Luke Gale over for the try.
Widnes would post the final try of the first half, with Ryan Millar scoring his second try in as many matches. Quick hands found him on the right flank, and the winger produced a superb acrobatic finish to touch down in the corner.
That made it 10-6, and shortly before half-time, Jack Owens extended the hosts’ lead with the boot after Keighley were penalised for offside.
Owens added a try to his name shortly after half-time, powering through a gaping hole before out-muscling Keighley’s last man to touch down 5m in from the touchline.
However, quickfire Keighley scores from Gale, assisted by the excellent Lewis Young and Robbie Storey levelled the game at 18-18, and it set up a grandstand finish.
Millar proved to be decisive yet again, putting his side four points ahead with a strong finish out wide following a cut-out pass from Joe Lyons, who was celebrating his 100th career appearance.
And it was Millar who would complete his hat-trick and seal victory with virtually the last act of the contest, with yet another trademark leap for the corner after the ball was flung in his direction.