Cedric Itten and Alex Lowry (far right) both scored in the first half for Rangers
Rangers began one of the biggest weeks in their history with a youthful XI easing to victory over Hearts in the Scottish Premiership at Tynecastle.
Hearts led through Peter Haring's strike, seven days before the two sides meet again in the Scottish Cup final.
But Rangers, who take on Eintracht Frankfurt on Wednesday in the Europa League final in Seville, fought back through Cedric Itten and Alex Lowry.
And 19-year-old Cole McKinnon scored from the bench on his debut.
"We dominated against a very good side with a very young team," said Rangers manager Giovanni van Bronckhorst. "I'm very proud."
Hearts end the league season with just one point from four games, but what will concern manager Robbie Neilson is that forward Liam Boyce lasted just 12 minutes before hobbling off injured.
However defenders John Souttar and Craig Halkett both made late appearances after lengthy injury lay-offs ahead of the trip to Hampden.
- Reaction & how it happened
Billed as a cup final rehearsal, both managers made 15 changes between them from midweek, with Rangers naming a bench that had an average age of 20.
The likelihood is the sides that walk out in Seville and Hampden next week will be much different from the ones that emerged from the Tynecastle tunnel, but there was no lack of tempo as Scott Arfield twice threatened to give the visitors an early lead.
It remained lively. Steven Davis shot wide for Rangers, while at the other end goalkeeper Jon McLaughlin had to race out and slide tackle Gary Mackay-Steven, who had broken through the visitors' backline.
Ellis Simms was the main cause of angst for the Rangers defence, and the forward was pivotal as Hearts took the lead.
The on-loan Everton man latched onto Josh Ginnelly's pass, held it up, then laid the ball off to Haring who cracked a laser from the edge of the box and into the bottom left-hand corner.
But the lead was short lived. Itten had a low shot deflected over the bar, but raced to the front post to meet the corner and headed in his first league goal of the season.
Rangers were always a threat on the counter attack. Amad Diallo shot over the bar after a neat one-two with Aaron Ramsey, before Lowry scored his first league goal for Rangers.
The 18-year-old collected the ball out wide on the left and planted a classy finish beyond Gordon.
As Barrie McKay livened up so did Hearts, and he had two good chances in a minute. First he juggled the ball then flashed a left-foot shot just over the bar, before racing onto a cut-back and firing just wide of a post.
McKay shot over again after Nathan Atkinson elected to pass rather than shoot, but then Rangers' youngsters took over to show the future is bright in Govan.
Charlie McCann looked like he would burst the net, only to pull his shot wide. Then Cole McKinnon - 20 minutes after coming on for his debut - lashed in a fine finish from the edge of the box to make it three.
Tony Weston then headed wide at the back post as Hearts were opened up again.
Hearts did have the last chance when McLaughlin pushed wide a Toby Sibbick shot, but Neilson's side will need much better when it really matters in seven days time.
Man of the match - Alex LowryThe playmaker (right) had a goal, an assist, and looks a real prospect for RangersWhat did we learn?
Both managers would have wanted to get through the 90 minutes without injuries to key players. Neilson is beginning to get many of his players back fit and now has options ahead of the Hampden showpiece.
Boyce's injury will be a worry, but replacement Ginnelly was one of the hosts' better players and may well have played himself into the cup final starting XI. Haring, McKay and Simms have all surely done enough to start the final, too.
It may well be a case that no players who started for Rangers will start in Seville, but in Lowry they have a player who could be a big part of the team over the next few seasons.
The classy 18-year-old delivered a goal and an assist in the first half, and looked comfortable on the ball every time it arrived at his feet.
What did they say?
Hearts manager Robbie Neilson: "I just thought we weren't at it; it had that end of season feel. But we've had a brilliant season so far.
"I could see a bit of rustiness in some of the players that came back too. It's about next week now. We've got to bring the energy that we didn't bring today."
Rangers manager Giovanni van Bronckhorst: "I was really impressed by the win and the way we played.
WYou couldn't see the changes we had made, especially with so many youngsters on the pitch. They performed really well."
The two sides face each other again at Hampden next Saturday in the Scottish Cup final (15:00 BST), but before that Rangers take on Eintracht Frankfurt in Seville on Wednesday in the Europa League final (20:00).
Player of the match
with an average of 8.25
- HeartsHeart of MidlothianHeart of MidlothianRangersRangersRangers
Heart of MidlothianAvgSquad number4Player nameSouttarAverage rating
Squad number18Player nameMcKayAverage rating
Squad number16Player nameHallidayAverage rating
Squad number1Player nameGordonAverage rating
Squad number20Player nameSimmsAverage rating
Squad number30Player nameGinnellyAverage rating
Squad number5Player nameHaringAverage rating
Squad number3Player nameKingsleyAverage rating
Squad number14Player nameDevlinAverage rating
Squad number21Player nameSibbickAverage rating
Squad number19Player nameHalkettAverage rating
Squad number2Player nameSmithAverage rating
Squad number17Player nameCochraneAverage rating
Squad number11Player nameMackay-StevenAverage rating
Squad number10Player nameBoyceAverage rating
Squad number12Player nameAtkinsonAverage rating
RangersAvgSquad number58Player nameMcKinnonAverage rating
Squad number51Player nameLowryAverage rating
Squad number43Player nameKingAverage rating
Squad number54Player nameMcCauslandAverage rating
Squad number64Player nameDevineAverage rating
Squad number10Player nameDavisAverage rating
Squad number11Player nameIttenAverage rating
Squad number9Player nameDialloAverage rating
Squad number26Player nameBalogunAverage rating
Squad number19Player nameSandsAverage rating
Squad number16Player nameRamseyAverage rating
Squad number42Player nameMcCannAverage rating
Squad number52Player nameWestonAverage rating
Squad number37Player nameArfieldAverage rating
Squad number15Player nameSimpsonAverage rating
Squad number33Player nameMcLaughlinAverage rating
- Line-upsMatch StatsLive Text
- 1Gordon21Sibbick3Kingsley17Cochrane2SmithSubstituted forHallidayat 68'minutes5HaringSubstituted forSouttarat 68'minutes14DevlinSubstituted forAtkinsonat 45'minutes18McKay11Mackay-Steven20SimmsBooked at 16minsSubstituted forHalkettat 75'minutes10BoyceSubstituted forGinnellyat 12'minutes
- 33McLaughlin64Devine19Sands26BalogunSubstituted forSimpsonat 61'minutes43KingBooked at 69mins10DavisSubstituted forWestonat 71'minutes16RamseySubstituted forMcKinnonat 60'minutes37ArfieldSubstituted forMcCannat 45'minutes9DialloSubstituted forMcCauslandat 61'minutes11Itten51LowryBooked at 53mins
Referee:Kevin ClancyAttendance:16,969Match StatsHome TeamHeartsAway TeamRangersPossessionHome42%Away58%ShotsHome9Away12Shots on TargetHome3Away6CornersHome6Away3FoulsHome6Away10Live TextPost update
Match ends, Heart of Midlothian 1, Rangers 3.
Second Half ends, Heart of Midlothian 1, Rangers 3.
Attempt saved. Toby Sibbick (Heart of Midlothian) right footed shot from outside the box is saved in the top right corner. Assisted by Stephen Kingsley.
Attempt missed. Tony Weston (Rangers) header from the left side of the box misses to the left. Assisted by Ross McCausland.
Offside, Heart of Midlothian. Andrew Halliday tries a through ball, but Toby Sibbick is caught offside.
Ross McCausland (Rangers) wins a free kick in the defensive half.
Foul by Alex Cochrane (Heart of Midlothian).
Goal! Heart of Midlothian 1, Rangers 3. Cole McKinnon (Rangers) right footed shot from the centre of the box to the bottom left corner. Assisted by Ross McCausland.
Attempt missed. Andrew Halliday (Heart of Midlothian) left footed shot from the centre of the box misses to the right.
Foul by Ross McCausland (Rangers).
Alex Cochrane (Heart of Midlothian) wins a free kick on the left wing.
Attempt saved. Alexander Lowry (Rangers) right footed shot from outside the box is saved in the centre of the goal.
Substitution, Heart of Midlothian. Craig Halkett replaces Ellis Simms.
Cedric Itten (Rangers) wins a free kick in the defensive half.
Foul by Andrew Halliday (Heart of Midlothian).
Substitution, Rangers. Tony Weston replaces Steven Davis.
Attempt missed. Charlie McCann (Rangers) right footed shot from the centre of the box is high and wide to the right. Assisted by Cedric Itten.
Leon Thomson King (Rangers) is shown the yellow card for a bad foul.
Foul by Leon Thomson King (Rangers).
Gary Mackay-Steven (Heart of Midlothian) wins a free kick on the right wing.
Page 1 of 5rewindpreviousNavigate to the next pagenextNavigate to the last pageforward