Fast bowler James Anderson celebrated his 700th Test wicket as England bowled out India for 477, with the hosts leading by 259 runs on day three of the fifth Test on Saturday.

Anderson got Kuldeep Yadav caught behind for 30 to become the first paceman and third bowler to the mark, after spinners Sri Lanka's Muttiah Muralitharan (800 wickets) and late Australian great Shane Warne (708).

The 41-year-old raised the ball to the crowd against the backdrop of the Himalayas in the scenic Dharamsala stadium, as teammates gathered around him and England fans stood up to cheer.

It ended Yadav's stubborn 49-run ninth-wicket overnight stand with Jasprit Bumrah.

Spinner Shoaib Bashir soon wrapped up the innings in the fifth over of the day when he got Bumrah stumped for 20, completing a five-wicket haul.

India remain in firm command of the Test after centuries from Rohit Sharma (103) and Shubman Gill (110) on day two in response to England's 218.

The two put on 171 runs for the second wicket to raise India's hopes of a 4-1 finish to the five-match series.

India lost the opener but bounced back to take the following three.

Anderson had come into the series 10 away from the landmark of 700 wickets, and started the final match on 698 wickets.

He began his career in 2003 at Lord's against Zimbabwe and has since played 187 matches.

Called the "swing king" for his ability to move the ball both ways, Anderson averages under 27 and has 32 five-wicket hauls in Tests.