After stand-in captain Jasprit Bumrah chose to bat first after winning the toss at Optus Stadium, Australia's star-studded pace attack strangled India's top order missing Rohit Sharma (parental leave) and Shubman Gill (thumb).
Kohli (five), batting deep out of his crease, lasted just 12 balls before he awkwardly top-edged a Josh Hazlewood (2-10) delivery to Usman Khawaja at first slip.
It continues the 36-year-old's concerning run at Test level, averaging less than 32 since the start of 2020.
KL Rahul (26), filling in for Sharma as opener, almost survived the first session but fell to Mitchell Starc (2-10) in controversial fashion just before lunch.
Mitchell Starc was at his lethal best, picking up two wickets in the first session in Perth. (Dean Lewins/AAP PHOTOS)
Rahul was initially given not out, but it was overturned on review as a spike showed up on Snicko.
The 32-year-old was visibly fuming, standing his ground for a number of seconds even when TV umpire Richard Illingworth had made the call to reverse the decision.
Rahul appeared to indicate he believed his bat had made contact with his pad, not the ball, and that had produced the spike on Snicko.
Australian commentators Mike Hussey, Adam Gilchrist and Mark Waugh all immediately raised doubt about the decision on Fox Cricket.
Matchwinning keeper-batter Rishabh Pant (10no) will continue batting with Dhruv Jurel (4no) after lunch.
Highly rated opener Yashasvi Jaiswal had a nightmare first innings in Australia, dismissed for a duck after flashing at a ball from Starc.
Debutant Nathan McSweeney, who was presented with his Baggy Green by former Australia coach Darren Lehmann, was into the Test early after confidently taking the catch in gully.
McSweeney becomes Australia's 467th Test cricketer, and the first since left-arm spinner Matt Kuhnemann debuted in India in February 2023.
The 25-year-old Queenslander, who is currently South Australia's captain, will open the batting with Usman Khawaja despite never having done so at Sheffield Shield level.
Gill's replacement Devdutt Padikkal, playing his second Test, was out for a torturous 23-ball duck.
India have unleashed two debutants - allrounder Nitish Kumar Reddy and quick Harshit Rana - for the first match in the five-Test series.
The tourists confirmed the shock selection calls by dropping star allrounders Ravindra Jadeja and Ravi Ashwin.
Jadeja is coming off a 10-wicket haul in India's last Test and has tormented Australia in the past.
In the last battle for the Border-Gavaskar Trophy in India last year, Jadeja and Ashwin were joint players of the series as they spun their team to victory in the first two Tests to set up the 2-1 triumph.