The Australian slide started when Finch was trapped lbw by swing bowler Jasprit Bumrah following his second half century in four test appearances.
Khawaja top-edged a cut to wicketkeeper Rishabh Pant off swing bowler Umesh Yadav.
Harris' innings ended when he edged offspinner Hanuma Vihari and Ajinkya Rahane took the catch as it bounced off Pant's shoulder.
India took further control with another wicket seven balls into the final session, with skipper Virat Kohli taking a sharp catch at second slip off Ishant Sharma's bowling to dismiss Peter Handscomb for seven, with the score 148-4.
Australia trail the four-test series 1-0 following a 31-run loss in the first test in Adelaide earlier this week.
Harris and Finch negotiated the four-pronged swing and seam attack as India struggled to make good use of the conditions either by bowling too short or full.
It could have been a long day for India in the field as the temperature edged towards 40 degrees Celsius at the world's newest test venue.
After 48 years and 44 tests, test cricket has shifted from the WACA to the nearby Perth Stadium, making it Australia's 10th test cricket ground.
Harris, who once played first-class cricket for Western Australia, was in punishing mood as he struck Ishant Sharma for three boundaries within five deliveries to force the swing bowler out of the attack.
Finch survived a run out on 14 when Kohli's throw missed the stumps at the striker's end after being sent back by Harris.
He was on 20 when he survived a DRS referral for LBW off swing bowler Mohammad Shami, and a confident shout for LBW off the bowler's first two deliveries of the day.
Kohli's line-up is aiming to become the first from India to win a test series in Australia.
Injuries to batsman Rohit Sharma and offspinner Ravichandran Ashwin forced two changes in India's line-up. Batsman Hanuma Vihari replaced Sharma in the middle order, while swing bowler Umesh Yadav came in for Ashwin.
- AP