Dylan Wruck scored the game winner at 8:51 of the third, picking off a cross-ice pass in the defensive zone, then dragging the puck around sprawling defender Colten Martin to rifle it glove side.
Michael St. Croix and Klarc Wilson also scored for the Oil Kings (8-3-3), who have won three games in a row.
Dylen McKinlay, Zach Franko and Tyson Baillie had the goals for the Rockets (7-6-2).
Laurent Brossoit made 24 saves for the win as Jordon Cooke stopped 38 shots in a losing cause.
McKinlay opened up the scoring for the Rockets at 8:50 of the first, cutting to the inside and whipping a shot just under Brossoit's glove.
Samuelsson tied the game on a two-man advantage with 3:10 to go in the first, finishing off a tic-tac-toe play with St. Croix and T.J. Foster.
With less than a minute remaining Franko broke in alone and tucked it fivehole to make it 2-1 Rockets after one, despite Kelowna being outshot 16-5 in the opening 20 minutes.
Another Edmonton power-play goal tied the game at two, with St. Croix picking the far corner on a four-on-three man advantage at 4:04 of the second period.
Tyson Baillie gave Kelowna the lead again at 10:25.
Edmonton tied it at three 4:54 into the third as Mitchell Moroz forced the turnover behind the Kelowna net, feeding an unmarked Wilson in front who had a wide open net.
Samuelsson added the empty-net insurance goal with 19 seconds remaining.
Edmonton went 2-for-6 on the power play while Kelowna failed to score on four chances with the man advantage.