Harbhajan smashed 54 as India, replying to Australia's first innings total of 430, recovered from 155-5 to 313-8 by stumps on the third day at the Chinnaswamy stadium.
Zaheer Khan chipped in with an unbeaten 35 during an eighth-wicket stand of 80 with Harbhajan as the last three Indian wickets plundered 158 runs after the famed top order had been decimated by Johnson.
The tall 26-year-old from Queensland claimed three wickets for 19 runs in the morning session to reduce India to 106-4 and left the hosts in danger of being asked to follow-on.
Harbhajan hit five boundaries before he was caught behind off Shane Watson just before stumps.
The four-pronged Australian pace attack of Johnson, Brett Lee, Stuart Clark and Watson prospered in their first Test appearance on Indian soil with sustained hostile spells.
The bowlers won a fascinating contest against India's veteran batsmen on a dual-paced wicket where deliveries rose alarmingly or keep low at times.
Rahul 'the Wall' Dravid, who had a brick wall unveiled in his honour by the local cricket association before the match, made 51 and retiring former captain Sourav Ganguly scored 47.
Sachin Tendulkar, needing 77 runs to overtake retired West Indian Brian Lara as Test cricket's highest run-scorer, was dismissed for just 13.
Dravid fell two balls after recording his 53rd Test half-century, trapped leg-before by Watson.
Left-handed Ganguly, who will retire from international cricket after the series, held fort for three hours before Johnson had him leg-before soon after tea for his fourth wicket.
India lost openers Gautam Gambhir and Virender Sehwag in the first five overs after the hosts resumed at the overnight score of 68 without loss.
Gambhir was leg-before to Lee for 20, while Sehwag edged a wide ball from Johnson to lone slip Matthew Hayden after making 45.
Tendulkar, playing his first competitive match since the Test series in Sri Lanka in August due to a shoulder injury, was greeted by an ear-splitting roar from some 35,000 home fans.
He opened his account by slashing Lee to the point boundary, but was lucky to survive the next over when he was stranded down the wicket as Clarke's throw narrowly missed the stumps.
Tendulkar had another escape before he had reached double figures, pushing a short ball from Johnson just out of the reach of debutant Cameron White at short point.
Johnson, however, had the final say as Tendulkar patted a slower delivery straight to White in the same position to leave India on 94-3.