An own goal had Gers ahead at the break, before Hearts equalised early in the second-half, but it was a good response from Clement’s men as a Vaclav Cerny strike and another own goal secured the points.
Rangers lined-up with Jack Butland in goal behind a back four of James Tavernier, John Souttar, Clinton Nsiala and Jefte.
Nico Raskin came back into midfield alongside Mohamed Diomande, while Tom Lawrence made his first start since November. Hamza Igamane led the line, with support from Vaclav Cerny and Ianis Hagi.
Rangers started well with Tom Lawrence sending a dangerous ball across the face of goal which Craig Gordon got enough on top tip away from Ianis Hagi before the danger was cleared.
From the resulting corner, the ball was in the net with only two minutes played in Edinburgh. James Tavernier sent the set-piece short to Ianis Hagi and he whipped a cross in which evaded the Hearts defenders with John Souttar waiting at the back post to tap home, but it was disallowed for offside.
Shankland fired over for Hearts at the other end as both sides threatened in the opening five minutes before Kabangu headed over from a free-kick for the hosts.
With 17 minutes played, the home side almost had the lead with their best chance of the game so far but it was denied by a strong save from Jack Butland. Hearts broke up the pitch in numbers with Blair Spittal finding Kabangu in the box but Butland matched the shot with a good block.
Minutes later, it was Rangers who had the lead through a bit of fortune to round-off a good move. A short corner was played out to Ianis Hagi by James Tavernier, and after finding Diomande, it was returned to Hagi and his cross across the face of goal was turned behind by Hearts defender Jamie McCart.
It was end to end at Tynecastle and Elton Kabangu was again denied by Butland as the Rangers keeper pulled off a big save to his right to keep out the strikers’ effort. Kabangu was looking threatening for the hosts and again tested Butland with a strike across goal but it was tipped wide.
Hearts were creating some good opportunities but the Rangers defence was standing strong to protect their lead as Butland tipped over a powerful hit from Shankland.
With 38 minutes played, Cerny saw a low strike blocked by the feet of Craig Gordon as Clement’s men looked to increase their lead before the break, before Nico Raskin tested the Scotland international with another strike from distance.
The home side started the second-half in similar fashion to the first, and with 48 minutes played they had the equaliser. From a James Penrice corner, Michael Steinwender rose highest to send a glancing header beyond Butland.
Cerny came close again to finding the scoresheet as he looked to nestle a curling left-footed shot in at the post but it was just inches wide.
However, the one-loan winger didn’t have to wait long until his goal did come as minutes later he restored Rangers' lead. The Light Blues broke up the pitch, and Hamza Igamane tried a shot at goal from inside the box but a sliding clearance from a Hearts defender pushed it into the path of Cerny who had done well to stay onside and find the back of the net with a cool finish.
Clement turned to his bench for the first time of the afternoon with just over 20 minutes remaining at Tynecastle as Cyriel Dessers came on to replace Tom Lawrence.
Rangers had a third and it was another own goal from Hearts to make the final period more comfortable for the Light Blues. Ianis Hagi sent a dangerous ball over the top and into the path of Dessers. The striker put McCart under pressure and the Hearts defender's touch was enough to send it beyond Gordon.
Dessers had the ball in the back of the net again in the 78th minute, but the linesman raised his flag for offside as the Rangers striker dispatched a low finish beyond Gordon but following a VAR check the goal was disallowed.
RANGERS: Butland, Tavernier (Fernandes, 89), Souttar (Propper, 77), Nsiala, Jefte, Raskin, Diomande, Lawrence (Dessers, 71), Hagi (Curtis, 89), Cerny, Igamane.
Subs: Kelly, Ridvan, Bajrami, King, Rice.
Hearts: Gordon, Baningime, Grant (Kurtum, 70) , Shankland, Steinwender (Neilson, 73), Spittal (Nieuwenhof 70), , Kabangu (Vargas, 80), Wilson (Drammeh, 80), Penrice, McCart, Forrester.
Subs: Clark, Forrest, Milne, Taylor.