Chauhan was born in Uttar Pradesh but moved to Pune in Maharashtra in 1960 where his father, an army officer, was transferred. He took his bachelor's degrees at Wadia College in Pune. There he was coached by the former Maharashtra player Kamal Bhandarkar. Chauhan represented Pune University in the Rohinton Baria Trophy in 1966–67 and was selected to represent West Zone for the interzonal Vizzy Trophy in the same season. He scored 103 against North Zone and 88 & 63 against South Zone in the final. His opening partner in the second innings was Sunil Gavaskar.
More success in the Vizzy trophy in 1967 led to his selection in the Maharashtra Ranji team. Chauhan's first hundred came next year when he was first in and last out against Bombay on a rain affected wicket where the first six wickets fell for 52. He scored 103 against South Zone in the Duleep Trophy final against five Test bowlers and was selected to play for India in 1969–70.
Chauhan made his Test debut against New Zealand at the Bombay. He took 25 minutes to score his first run, a square cut for four off Bruce Taylor His next scoring shot was a hook for six off the same bowler. Chauhan was dropped after two Tests, made an appearance against Australia later in the season, failed, and was dropped again for three years.
Chauhan scored 873 runs in the 1972–73 Ranji season for Maharashtra which was then the second highest aggregate for a season. This included double hundreds in consecutive matches against Gujarat and Vidarbha. Chauhan and Madhu Gupte shared an opening stand of 405 in the latter match. In between the double hundreds, he played two Tests against England. He failed and did not play a Test for another five years.
He moved to Delhi and the North Zone in 1975. One appearance against Sri Lanka in an unofficial Test ended in failure. In 1976–77, he scored 158 against Haryana (with a fractured jaw), 200 v Punjab, 147 v Karnataka and 150 against the Central Zone. Another Duleep trophy hundred early in the next season found him a place in the team to Australia.
Chauhan scored 157 against Victoria in his first match of the tour. It took him 516 minutes and included just two fours. Paul Hibbert of Victoria had scored a hundred earlier in the match without a single boundary. Chauhan returned to the Indian team for the second Test at Perth and hit 88 in his very first innings. From then he missed only one Test till the end of his career and, except for one occasion, opened with Gavaskar every time. At Lahore against Pakistan they added 192, and 117 & 153 against West Indies at Bombay.
In England in 1979, they put on 213 in the second innings at The Oval when India missed the target of 438 by nine runs. Against Australia in 1980–81, Chauhan scored 249 runs in three Tests to Gavaskar's 118. He missed a hundred by three runs in Adelaide. At Melbourne in the next Test, he scored 85 and added 165 with Gavaskar before the latter was given out lbw to Dennis Lillee. Gavaskar, the captain, disputed the decision on the way out and ordered Chauhan to leave the field with him. An embarrassing situation was avoided when the Indian manager Wing Cmdr. Shahid Durrani persuaded Chauhan to return. Touring New Zealand after the trip to Australia, Chauhan scored 78 in the second Test and 36 & 7 in the third.
Chauhan was dropped after the tour and never selected for another Test match. He added 3022 runs with Gavaskar in their 59 opening stands, ten of which were over 100. He scored 2084 runs in his career with 16 fifties but without a century. His last first class match was the Ranji final against Bombay in 1985 where he scored 98 and 54 with a fractured finger.
Chauhan was a member of the Lok Sabha (lower house of the parliament) from Amroha in 1991 and 1998. He lost the elections from the same constituency in 1996, 1999 and 2004, finishing fourth on the last occasion. He is a member of the Bharatiya Janata Party.
Chauhan received the Arjuna award in 1981.