Cougars started brightly and after Raiders conceded a penalty, they made no mistake when opening the scoring.
Danny Jones put in a cross-field kick, which Paul White latched on to and then touched down in the corner.
They were quickly in again five minutes later.
This time, Paul Handforth grubbered through in behind the defensive line with Lawton pouncing on the ball in goal.
Barrow hit-back, though, as Dan Toal managed to barge his way through on the right.
Despite Raiders continuing to look the more likely to score before the break, it was Keighley who managed to extend their lead. Jones dropped a goal after the hooter to make it 13-6 at the break.
A moment of magic then saw Barrow pull themselves right back in the game.
Shaw managed to dance his way around two tacklers and break 60 yards downfield before stabbing through a kick to Dalton Grant who crossed.
But Cougars were next in as a swift passing move saw James Feather, Jones, Handforth and James Craven combine well to whip the ball out wide to Richie Barnett, who dived in at the right corner.
Keighley then went over again as Sean Hesketh powered his way over on the same side. Jones was able to convert the latter to make it 23-12.
The Cumbrians managed to get over again to keep the game alive in the dying minutes, with Toal once again forcing his way through to the line.
But it was Cougars who had the last laugh, as Lawton went in for a late second to make sure of victory.
Keighley Cougars: Craven; Barnett, Lawton, Haley, White; Danny Jones, Handforth; Cherryholme, Feather, Hesketh, Lynam, Rawlins, Sagar. Substitutes: Sheriffe, Graham, Lee, Peltier.
Barrow Raiders: Evalds; Shaw, Walton, Wiper, Grant; Speakman, Campbell; Dawson, Mossop, Danny Jones, Harrison, Toal, Dixon. Substitutes: Low, Butler, Bullock, Govin.
Referee: W Turley (RFL).