Skipper James Tavernier scored a second-half double as Rangers swept into the Viaplay Cup final with a hard-fought 3-1 win over Hearts at Hampden Park.
The Gers right-back opened the scoring with a penalty five minutes after the interval before substitute Scott Wright fired in a second five minutes later.
Tavernier’s superb 20-yard free-kick in the 64th minute effectively clinched a place in the December 17 final against Aberdeen, giving Philippe Clement – unbeaten in his first five games as Rangers boss – his first chance to win silverware.
Hearts skipper Lawrence Shankland scored a penalty with 10 minutes remaining but it proved no more than a consolation for the Jambos who had conceded two late goals in a 2-1 cinch Premiership defeat at Ibrox last weekend.
Following their victory against Dundee on Wednesday night, Clement brought in left-back Borna Barisic and midfielder Todd Cantwell.
Steven Naismith made four changes from the midweek win over Livingston with defender Toby Sibbick, midfielders Jorge Grant and Calem Nieuwenhof and Kenneth Vargas returning to the side which had the first effort on goal after five minutes when Shankland’s curling shot was comfortably saved by Gers keeper Jack Butland.
Rangers slowly worked their way forward.
In the 16th minute striker Danilo, wearing a mask to protect a fractured cheekbone, and who scored an added-time winner last week, worked a one-two with Cantwell and flashed a shot just over the crossbar.
Hearts keeper Zander Clark saved headers from Light Blues forward Abdallah Sima and Cantwell, both from close range.
Some clever build-up play by the Ibrox side in the 26th minute ended with Cantwell volleying on the turn from 16 yards but Clark parried at his near post.
Sima headed a Barisic corner past a post as Rangers again threatened but the first half remained goalless.
Wright replaced Cantwell at the break and the second half began in explosive fashion when referee Nick Walsh pointed to the spot when Clark upended Danilo inside the box.
Tavernier, who scored a penalty against Hearts last week and hit a post with another, gave Clark no chance from 12 yards and Rangers had the advantage.
Hearts responded quickly and Butland flew to his right to save a Frankie Kent header from a corner but soon the Ibrox men were two up.
Midfielder Ryan Jack picked up a loose ball and played it to Danilo who put Wright through and he drilled a shot past Clark and into the far corner for his first Gers goal since scoring the clincher against the Jambos in the 2022 Scottish Cup final.
Again Hearts came back and Butland tipped a long-range drive from Stephen Kingsley over the bar but the Jambos soon found themselves further behind after Kyle Rowes was booked for a foul on Wright just outside the box.
Tavernier stepped up and sent a trademark free-kick curling high past the rooted Clark and then Wright came close to a second in the 77th minute when he volleyed just wide from a Sima cross.
There was confusion and drama when referee Nick Walsh showed already-booked Kingsley a red card for diving inside the Rangers box.
However, VAR intervened and after checking his pitchside monitor, Walsh deemed Rangers substitute Ben Davies had tripped Kingsley and rescinded the second yellow, pointed to the spot and Shankland slotted in the penalty.
But it was no pathway back into the game as Clark was required to make late saves from substitute Tom Lawrence and Barisic.