There is a moment in every great sporting season where the narrative stops pretending it is not a story.
Where the coincidences stop feeling random.
Where every result, every dropped catch, every last-over six looks like it was arranged by someone who wanted this particular ending.
This IPL season hit that moment this week.
Last time I wrote here, I was processing a Virat Kohli century that cut through KKR’s bowling like a surgeon going through something that never stood a chance. Raipur. Wednesday night. 105 not out. The wound was still fresh when I put pen to paper.
That was May 16, early morning.
A lot has happened since.
Three teams have qualified. Three teams are now fighting over a single chair that remains in the playoff room. And in the next 48 hours, three matches will decide who gets to sit in it.
Let me take you through the week that built to this.
There are nights at Eden when the crowd doesn’t just watch cricket. It becomes the cricket.
Saturday night was one of them.
GT had won five in a row coming in. They had Rabada and Holder on a pitch that always had something for the bowlers early. They had Shubman Gill in the form of his life. On paper, this should have been clinical. Comfortable. Another step in GT’s march to the top two.
Finn Allen did not read the paper.
He has never read the paper, which is possibly why he keeps batting the way he does. Allen has this extraordinary quality of arriving at a crease and making you feel like the game has already been decided, you just need to wait for the confirmation. He survived two dropped catches, on 14 and on 33. The kind of lives that you don’t waste when you are in that kind of mood. He got to 50 off 21 balls. He ended at 93 off 35.
By the time GT got him, KKR were already somewhere that the chase was going to require something extraordinary.
Angkrish Raghuvanshi came in and batted like he had been waiting all season for this exact match. 82 not out off 44 balls. His second successive big knock in the purple and gold, and this one felt different. There was a control to it. The youngster who made his name last year is starting to look not just talented but composed. Cameron Green came in at the back end and hit 52 not out off 28. The hundred partnership between the two arrived in 50 balls.
KKR posted 247 for 2.
I will be honest. Even at 247, with GT’s batting lineup and the ability they have shown all season, there was no certainty. Gill smacked a half-century. Buttler got a fifty. Sai Sudharsan made a fifty as well. Six half-centuries in the same IPL game, a first in the tournament’s history.
But 247 is 247. GT fell short by 29 runs. Stranded at 218 for 4, a number that would have chased down almost anything else all season.
Sunil Narine took 2 for 29. Narine who has been quietly exceptional with the ball in the second half of this season, getting not nearly enough credit while everyone watches the batters.
KKR: 11 points from 12 games. Still alive. Still, at that point, needing everything to go right.
Two matches on a Sunday afternoon and evening that changed the shape of the season’s final week.
Royal Challengers Bengaluru needed a win to seal their playoff spot. They came to the HPCA Stadium and took it.
What made this match significant was not just the result. It was the manner. RCB batted first. Virat Kohli set Dharamsala ablaze with a half-century at the top. The man is simply not done with proving things to people who think he might be done.
RCB posted 222 for what would become a commanding total on that surface. Then Bhuvneshwar and Rasikh Salam got to work. PBKS were reduced to 19 for 3 inside the powerplay. The team that was invincible in April could not find a way to score against a bowling attack that had seen every blueprint of theirs, twice over. Shashank Singh hit 56 off 27 to give the total some respectability, but PBKS finished at 199 for 8. RCB won by 23 runs.
RCB: first team to qualify. First, and given what would unfold over the next few days, probably with the most comfort of anyone.
Punjab Kings: seven consecutive defeats. The table-toppers of April had become a cautionary tale about what happens when the league figures you out and you don’t have an answer.
This match was the one that really tightened my chest on Sunday night.
Rajasthan Royals were cruising at 161 for 2 in the 15th over. Sooryavanshi had contributed 46 off 21, Dhruv Jurel was going, Riyan Parag had hit 51 off 26. The scoreboard at that point was pointing somewhere north of 220. This looked like a statement total.
Then Mitchell Starc bowled a single over that cricket will not forget in a hurry. Three wickets in four balls. The rug pulled, the platform destroyed, the over turned into a demolition job. Lungi Ngidi came back at the death and took 2 for 24. RR were restricted to 193 for 8.
KL Rahul and Abhishek Porel opened the batting for DC and put on 105 runs before the ten-over mark had arrived. A century opening stand in 61 balls. The game was effectively over. Jofra Archer managed 2 for 35, Brijesh Sharma got 2 for 44, but the platform was too high to tear down. Axar Patel finished it off with four balls to spare.
Delhi Capitals won by 5 wickets.
And the implication of that result was enormous. Rajasthan had slipped. DC had moved up slightly. And with RR dropping from fifth to sixth having played their 12th game, several doors that had looked like they were closing started to creak back open.
Cricket can be many things at Chepauk. Monsoon-threatened. Slow-paced. Unexpected. What it rarely is, when CSK are batting at home under lights, is comfortable for the opposition.
Sunrisers Hyderabad made it look comfortable.
Ishan Kishan had been in the kind of form that makes opposition captains avoid looking at the batting order too closely. Four consecutive fifty-plus scores against RCB in his recent outings, and on Monday night in Chennai he showed exactly why he has been the most improved batter in this league this year. 70 off 47. Three fours, seven sixes. On a pitch where CSK’s spinners were getting grip and the slower balls were doing things, Kishan stayed and read it.
Heinrich Klaasen made 47.
CSK had scored 180 for 7. It was not enough. SRH chased it with an over to spare, winning by five wickets.
Two things happened at once in that moment. SRH became the second team to qualify for the playoffs. And by virtue of their points tally, GT qualified automatically as the third. Three playoff spots filled on a Monday evening at Chepauk.
CSK’s season was not yet officially over, but the mathematics had been reduced to something very tight and very dependent on other teams failing.
One spot left. Technically five teams still in contention. Realistically, three with a genuine chance.
Let me give you the picture as it sat after CSK vs SRH:
RCB, 18 points from 13 matches. Qualified. Playing SRH in their final game, with top-two spot the only thing left to fight for.
GT, 16 points from 13 matches. Qualified. GT’s machine, six wins in their last seven games, was purring.
SRH, 16 points from 13 matches. Qualified. Finishing third unless something extraordinary happened.
And then the jam:
RR, 12 points from 12 matches. Two games left.
PBKS, 13 points from 13 matches. One game left.
KKR, 11 points from 12 matches. Two games left.
CSK, 12 points from 13 matches. One game left.
DC, 12 points from 12 matches. Two games left.
One seat. A table full of people who wanted it.
The thing about Vaibhav Sooryavanshi is that you keep having to remind yourself he is fifteen years old.
Not because he looks young. He does, occasionally, in the quieter moments. But because when he is in full flow, there is no deference to seniority, no hesitation about the occasion, no visible gap between what he wants to do and what he can do. He just plays. And when he plays well, it looks less like talent and more like inevitability.
Tuesday night in Jaipur, he played very well.
LSG posted 220 for 5, a decent total, built on a Mitchell Marsh half-century and Josh Inglis doing damage at the top. But LSG are a team playing for nothing, which sometimes makes a team dangerous and sometimes makes them loose. They were neither. They were just… there.
Jaiswal opened with Sooryavanshi and took the tempo in the early overs. Jaiswal hit 43 and then Akash Singh got him with an outswinger. And then the 15-year-old took over.
93 off 38 balls. He got to his fifty in 23 balls. He hit sixes that made R Ashwin post on social media in real time, comparing him to something extraterrestrial, which is not an understatement when you see the geometry of some of those hits. Dhruv Jurel finished the job. RR chased 221 with five balls to spare.
RR: 14 points from 13 games. They had climbed to fourth on the table. They had overtaken PBKS.
The celebrations in the Jaipur dugout told you what that win meant. High-fives, fist-bumps, and the slightly glazed expression of a team that had gone from looking finished to looking like they might actually make it.
But they were not through yet. One more game. Against MI on Sunday.
Let me be precise about what this match meant before I tell you what happened in it.
If KKR lost this game, they were finished. 11 points from 13 games with one match remaining against DC could still mathematically get to 13, but 13 would not be enough with RR on 14 and very likely to beat MI.
There was no margin. This was a must-win. In front of 66,000 people at Eden Gardens, in the city that has given this franchise everything, including two IPL titles and the loudest crowd in world cricket.
The pitch was slow. Unusual for Eden, which tends to be good for batting. The wicket gripped early. Bumrah was bowling. Hardik was in the XI. On paper, MI’s bowling was more than capable of defending any total.
MI batted first and made 147 for 8. In the context of the surface, it was not a bad score. Bumrah looked dangerous. Deepak Chahar moved the new ball.
KKR lost their top order. Finn Allen went cheaply. And in this moment of pressure, Manish Pandey and Rovman Powell steadied the innings in a partnership that got quieter mentions in the post-match coverage than it deserved. Powell, who has been largely quiet in this tournament, understood the surface and played accordingly. KKR wobbled but never fell apart.
Rinku Singh came to the crease at a moment that required his particular skill set: staying alive when it is difficult, and accelerating when there is room to do so. He hit the winning boundary. KKR won by four wickets with seven balls remaining.
The number that tells you everything: KKR’s score of 148 for 6 to win. Not a comfortable win. Not a dominant win. A win that required every run and every over. A win that, at various points, felt like it might not come.
But it came.
KKR: 13 points from 13 games. Tied with PBKS. With one game still to play.
By the time this match happened, CSK’s slim playoff mathematical hope required that GT lose. It also required RR to lose to MI. And KKR to lose to DC. And the NRR to work out.
Mohammed Siraj walked to the top of his run in the first over of CSK’s chase and didn’t seem interested in making it complicated.
He dismissed Sanju Samson for a duck. Then Ruturaj Gaikwad for 16. Then Urvil Patel for a duck. By the third over, CSK were 29 for 3, and the game was functionally over. Rashid Khan took 3 for 18. Rabada added 3 for 32. CSK crumbled to 140 all out in 13.4 overs. GT had made 229 for 4 built on another Gill-Sudharsan opening stand of 125. Gill hit 64, Sudharsan 84, his fifth consecutive half-century in IPL 2026. Jos Buttler thrashed an unbeaten 57 off 27 at the end.
The 89-run win: GT’s biggest win by runs in IPL history.
CSK were eliminated.
And GT confirmed a top-two finish. They now knew they would play Qualifier 1. The only question was whether they would play it as number one or number two, which would be settled by the SRH-RCB match on Friday.
A match where both teams already knew they had qualified. A match where the prize was the top-two finishing position: Qualifier 1 or Eliminator for the team that finished third.
And yet it produced some of the most electric batting of the season.
Abhishek Sharma and Ishan Kishan opened the batting for SRH as if they had a point to prove to everyone who had spent the week talking about Sooryavanshi and Gill and Kohli. Abhishek blazed to 56. Kishan made 79 off 46, his fourth consecutive fifty-plus score against RCB in as many meetings. A half-century from Klaasen followed. 255 for 4 in 20 overs. A total that required RCB to be restricted below 167 to move SRH to second place.
RCB were not restricted below 167. Rajat Patidar made 56, Venkatesh Iyer 44, Krunal Pandya stayed unbeaten at 41. RCB reached 200 for 4.
SRH won by 55 runs. But it was a win that didn’t quite feel like one. They had needed 89 runs from RCB’s innings to move up. RCB managed 200. The calculation never got close.
RCB finish first. GT finish second. SRH finish third.
And then there was a footnote buried in the commentary feed that I want you to sit with for a moment.
Virat Kohli, in this match, played his 281st IPL game. The most in the tournament’s history. He went past Rohit Sharma.
281 games. The man has played this tournament for almost its entire lifetime. And he is still the one your seam attack does not want to bowl to in the 14th over.
The league stage ends in three matches. Two days. And this is what we know.
Three teams have qualified: RCB, GT, SRH.
The teams fighting for it:
Rajasthan Royals. 14 points from 13 games. They are in fourth position. They play MI on Sunday afternoon at Wankhede. MI have nothing to play for except pride and, perhaps, Hardik Pandya’s desire to send a message about what he thinks of several things. If RR win, they are in. Simple as that. They do not need anyone else’s help.
Punjab Kings. 13 points from 13 games. They play LSG tonight at Ekana. LSG are in last place. On paper, the softest possible last game. Shreyas Iyer’s team, which was supposed to win this IPL two months ago, needs to beat the bottom side just to stay in contention. If they win, they are on 15 points. That probably gets them in, but only if KKR don’t win their game tomorrow night with a better NRR.
Kolkata Knight Riders. 13 points from 13 games. They play DC on Sunday evening at Eden Gardens. And do not make the mistake of thinking DC are playing for nothing. If LSG beat PBKS tonight, and if RR lose heavily to MI tomorrow afternoon, DC could theoretically leapfrog RR on net run rate with a big enough win over KKR. It is a slim thread, but it is a thread, and KL Rahul’s team will know exactly what the numbers say before they take the field. Axar Patel, Mitchell Starc, Jofra Archer: this is not a bowling attack that needs extra motivation to bowl well. KKR will get nothing for free.
The equation Ajinkya Rahane’s men are working with, as I write this on Saturday morning, is this:
LSG need to beat PBKS tonight. Then MI need to beat RR tomorrow afternoon. Then KKR need to beat DC tomorrow evening.
Three results. Three matches. Three teams that need to go wrong before the Knights can go right.
It requires LSG to find something they haven’t shown all tournament. It requires MI to be motivated enough to beat a team that would benefit from losing. It requires KKR to win their last home game and trust that the math works out.
Is it likely? No.
Is it impossible? Also no.
Because nothing about this IPL season has been likely. And nothing has been impossible.
PBKS went from six wins in seven to six losses in six. RR went from losing three in a row to Sooryavanshi blitzing 93 in a must-win. KKR went from one point in six games to six wins in their next seven.
The IPL doesn’t reward the team that played the best across ten weeks. It rewards the team that peaks at exactly the right moment, survives the chaos, and happens to be standing when the music stops.
I have been following KKR long enough to know that we exist at the intersection of hope and heartbreak. Sometimes in the same over. I have watched us win IPL titles and I have watched us finish in the bottom half and I have learned that the only way to survive being a KKR fan is to feel everything and hold on to nothing.
So tonight I will watch LSG vs PBKS with the tension of a man who knows that a win for a team he doesn’t support is the only way his team’s dream stays alive. I will make peace with the uncertainty. I will remember that Finn Allen scored 93 at Eden, that Rinku hit those winning boundaries, that Narine is still bowling in the 2026 IPL.
And tomorrow I will watch KKR bat and bowl at Eden Gardens in what may be their last game of the season.
Or the start of something.
Three matches. Two days. And somewhere in that sequence of results, KKR either find a way through or they don’t. I have stopped trying to predict what this team does. I just watch.
Read the previous post in this series here.
What do you think happens? Does the IPL work its script and give KKR the wild comeback story? Or does Sooryavanshi bat MI out of contention? Drop it in the comments.