Replying, Rangers bagged 182 for six in 20 overs, Royals tumbled for 135 for eight in 20 overs.
Alok Kapali hit 31 off 28 balls with two fours and two sixes while Ravi Bopara (28), Nahidul Islam (19) and Andre Russell (17) reached the double-digit scores but none of them was good enough to avoid a defeat for the Royals.
Taskin Ahmed bagged four wickets conceding 29 runs in four overs. The right-arm pacer played four games earlier but failed to grab any wicket.
Lewis Gregory took two wickets conceding 28 runs in four overs while Mohammad Nabi took one wicket.
Earlier, Royals won the toss and sent Rangers to bat first, who scored 38 runs in the opening stand. Shane Watson, the Australian all-rounder, failed to deliver again with the bat as he fell for seven off seven this time.
But Mohammad Naim continued to prove his mettle. The southpaw hit his second fifty of the season- 55 off 47 with six fours and one six.
Naim and Cameron Delport added 54 runs in the second wicket stand. In the first 10 overs, Rangers posted 75 runs.
But in the last 10 overs, they added 107 runs which helped them post a challenging total of 182 runs for six in 20 overs.
Lewis Gregory (28), Mohammad Nabi (16), Al-Amin (15) and Jahurul Islam Omi (19) also contributed with the bat.
Pakistan pacer Mohammad Irfan bagged two wickets conceding 35 runs while Afif Hossain also bagged two wickets but conceded 40 runs.
BPL will travel to Sylhet now for a six-game phase. Royals will take on Rangers in the first match of Sylhet phase on January 2 while Sylhet Thunder will face off Cumilla Warriors in the next game of the day.
The Sylhet-phase will come to the end on January 4, and the final-phase of BPL will continue from January 7 in Dhaka.