New-look Rangers' hopes of wrestling the Scottish Premiership title off rivals Celtic got off to the worst possible start as they were shocked by a reinvigorated Kilmarnock.
Michael Beale's blunt side, which included five debutants from the off, failed to truly trouble the organised and resolute hosts, who secured a well-deserved victory as Brad Lyons capitalised on poor defending to sweep in a 65th-minute winner.
Aside from first-half efforts from Cyriel Dessers and John Lundstram, and a John Souttar header after the break, the visitors' attacking play was limited in a disjointed display.
Even this early in the campaign, the result is a damaging one for Beale, who knows there is little room for error with his side already behind their Old Firm rivals.
That should take nothing away from a sensational showing from Kilmarnock, who came close to extending their lead with drives from Kyle Magennis and Danny Armstrong.
The victory is the Ayrshire side's first over Rangers since April 2020 and ends the Ibrox club's 20-game unbeaten run in opening top-flight fixtures.
Eyebrows were raised about Todd Cantwell's exclusion from the Rangers starting line-up, but his introduction - along with new Brazilian striker Danilo - failed to inspire an away side that just could not get going.
It was instead the entrance of Kilmarnock captain Kyle Vassell that arguably proved to be the turning point as the striker gave the hosts a focal point to go on and take the game away from Rangers.
Player of the match - Danny Armstrong
You could make the case for plenty in blue and white stripes, but last season's talisman (right) epitomised Kilmarnock's display with relentless energy on the right in both defence and attackNew Rangers faces, same defensive fragility - analysis
Fingers will be pointed at a fresh Rangers attack that failed to create clear chances, but the pivotal moment that changed this result from a draw to defeat came from sloppy defending by Souttar as the centre-back could not clear his lines from a long throw.
It is clear that this side will need time to gel, but the issue with Glasgow is you simply do not get that time. With the domination both Old Firm clubs hold over the other 10, the margin for error is so, so slim now. Beale needs this side to click quickly.
McInnes, who had seven fresh faces of his own in his XI, spoke pre-match about wanting to "demonstrate that there's been an improvement" in his side after a big summer rebuild.
Boy, did they do that. New recruit Robbie Deas in particular was a colossus in defence. The Ayrshire side should now be embracing what looks like a tough trip to Tynecastle next Sunday before a Viaplay Cup last-16 tie at home to Celtic the following weekend.
What they said
Kilmarnock manager Derek McInnes on Sky Sports: "We had to show a different version of ourselves against the Old Firm this season. Rangers will get better, but I think we'll get better as well.
"Our level of performance had to be really good today, but we delivered that. It's a really strong start."
Rangers manager Michael Beale on BBC Sportsound: "It's a very poor opening day for us. We need to move forward very quickly. There are 37 games to go, so let's not get carried away.
"The excitement over the summer is going to be tempered. We have to show the fans and excite them and they have to get behind us, it works both ways."
What's next?
Rangers start their European campaign live on the BBC this Wednesday (19:45 BST) in the first leg of their Champions League third-round qualifier against Servette.
The Ibrox side then welcome Livingston next Saturday (15:00) as Kilmarnock travel to Tynecastle to face Hearts.
Player of the match
MayoLewis Mayo
Kilmarnock
Squad number5Player nameMayo
Squad number10Player nameKennedy
Squad number9Player nameVassell
Squad number18Player nameCameron
Squad number8Player nameLyons
Squad number7Player nameMcKenzie
Squad number15Player nameMurray
Squad number16Player nameMagennis
Squad number12Player nameWatson
Squad number3Player nameNdaba
Squad number17Player nameFindlay
Squad number6Player nameDeas
Squad number11Player nameArmstrong
Squad number23Player nameWatkins
Squad number1Player nameDennis
Rangers
Squad number1Player nameButland
Squad number2Player nameTavernier
Squad number6Player nameGoldson
Squad number43Player nameRaskin
Squad number5Player nameSouttar
Squad number20Player nameDowell
Squad number14Player nameLammers
Squad number4Player nameLundstram
Squad number19Player nameSima
Squad number31Player nameBarisic
Squad number9Player nameDessers
Squad number8Player nameJack
Squad number25Player nameRoofe
Squad number99Player nameDanilo
Squad number13Player nameCantwell
Line-ups
Kilmarnock
Formation 5-3-2
1Dennis
11Armstrong5Mayo6Deas17Findlay3Ndaba
12Watson8Lyons16Magennis
10Kennedy23Watkins
1Dennis11ArmstrongSubstituted forMurrayat 89'minutes5Mayo6Deas17Findlay3Ndaba12Watson8Lyons16MagennisSubstituted forMcKenzieat 77'minutes10KennedySubstituted forCameronat 89'minutes23WatkinsSubstituted forVassellat 63'minutesSubstitutes
7McKenzie9Vassell14Sanders15Murray18Cameron19Davies20O'Hara22Donnelly31PolworthRangers
Formation 4-3-3
1Butland
2Tavernier6Goldson5Souttar31Barisic
4Lundstram43Raskin20Dowell
14Lammers9Dessers19Sima
1Butland2Tavernier6Goldson5Souttar31Barisic4LundstramSubstituted forJackat 72'minutes43Raskin20DowellSubstituted forCantwellat 62'minutes14LammersSubstituted forRoofeat 84'minutes9DessersSubstituted forPereira da Silvaat 62'minutes19SimaSubstitutes
7Hagi8Jack13Cantwell15Cifuentes17Matondo25Roofe27Balogun28McCrorie99Pereira da SilvaLive Text
Match ends, Kilmarnock 1, Rangers 0.
Second Half ends, Kilmarnock 1, Rangers 0.
Corner, Rangers. Conceded by Fraser Murray.
Todd Cantwell (Rangers) wins a free kick in the attacking half.
Foul by Brad Lyons (Kilmarnock).
Substitution, Kilmarnock. Fraser Murray replaces Daniel Armstrong.
Substitution, Kilmarnock. Innes Cameron replaces Matthew Kennedy.
Offside, Rangers. Abdallah Sima tries a through ball, but Kemar Roofe is caught offside.
Attempt missed. Abdallah Sima (Rangers) header from the centre of the box misses to the left. Assisted by Borna Barisic with a cross following a corner.
Corner, Rangers. Conceded by Brad Lyons.
Attempt blocked. Todd Cantwell (Rangers) right footed shot from the left side of the box is blocked.
Attempt missed. Nicolas Raskin (Rangers) right footed shot from outside the box misses to the left. Assisted by James Tavernier.
Substitution, Rangers. Kemar Roofe replaces Sam Lammers.
Foul by Nicolas Raskin (Rangers).
Corrie Ndaba (Kilmarnock) wins a free kick in the defensive half.
Attempt saved. James Tavernier (Rangers) header from the centre of the box is saved in the top centre of the goal. Assisted by Borna Barisic with a cross.
Connor Goldson (Rangers) wins a free kick in the defensive half.
Foul by Kyle Vassell (Kilmarnock).
Attempt missed. Todd Cantwell (Rangers) right footed shot from outside the box is high and wide to the right. Assisted by Nicolas Raskin.
Attempt missed. Danilo (Rangers) header from the centre of the box misses to the left. Assisted by Borna Barisic with a cross.