Keighley began in spectacular style, creating two excellent tries within the first 15 minutes and threatening to run away with the game. The visitors had no answer to the home side's pace and fluency, with the backs and forwards combining at speed and a thrilling attack from the halfway line ended with wingman Lucas Uren's inside jink and pace bringing him a fine try after 4 minutes play, with Alex Brown adding the conversion
Further impressive and expansive play involving centres Adam Horsfall and Scott Dyson and forwards Nathan Thornton and Paul Sinfield soon led to the Salem's defence being outflanked allowing wingman Jimmy Anson to touch down in the corner.
A penalty goal by Brown established a 15 point lead on the half hour, before the early festive cheer ground to a halt and the game bit by bit degenerated into a battle of attrition between the opposing forwards.
With their backs unable to make headway against a resolute Keighley defence, Salem sought to make progress throught their heavier pack and as half time approached Keighley did well to resist a prolonged forward assault on their line.
Early in the second half Keighley struck again when the resourceful Brown snapped up a difficult pass following a 5 metre scrum and plunged over for a try, his conversion building up a lead of 22 points.
Keighley were then sucked increasingly into a forward tussle, unable to win enough clean possession to enable them to exploit their potential in the backs. The Salem pack rumbled on, with experienced prop Simon Davies and flanker Luxton leading the way. The home side contributed to its problems by conceding too many penalties and from a 5 metre line out the visitors pack drove over with flanker Chris Fisher claiming the touch down and stand off Booth converting.
Booth then added a penalty goal, but Keighley held their nerve and a late penalty goal by Brown sealed a hard fought victory over a competative side which for long periods of the game belied its precarious league position.