Jadeja, 33, hit back-to-back fours off Matthew Potts in the 79th over to reach the landmark in 183 balls.
The left-handed batter, who played a second fiddle to a rampant Rishabh Pant on the opening day yesterday, resumed on overnight score of 83 off 163 balls, and with Mohammed Shami (16 off 31) added crucial 48 runs in 70 balls for the eighth wicket.
Jadeja was then joined by skipper Jasprit Bumrah in the middle after the fall of Shami, who got out trying to ramp the ball over the third man. Jack Leach took the catch to give Stuart Broad his 550th Test wicket.
But he was soon bowled by James Anderson with the second ball of the 83rd over. He made 104 off 194 with the help of 13 fours.
Jadeja, who made his Test debut against England in Nagpur in 2012, has scored 2500+ runs with the help of three centuries and 17 fifties.
This was his first overseas century and second this year. He thus became the fourth Indian to score two tons in a calendar year batting at seven or lower, after Kapil Dev in 1986, Mahendra Singh Dhoni in 2009 and Harbhajan Singh in 2010.
Ravindra Jadeja scored his first Test hundred in 2018 against West Indies at Rajkot, and his second came earlier this year against Sri Lanka in Mohali.
Jadeja was involved in a massive 222-run stand for the sixth wicket with Rishabh Pant (146) to help India fight back after slipping to 98/five on Day 1.
India, asked to bat first, scored 416 with Jasprit Bumrah hitting an unbeaten 31 off 16. The skipper hit Stuart Broad for four fours and two sixes in a 35-run over, the most expensive in Test cricket history.
This match, the final Test in the five-match series, was postponed last September due to COVID-19 outbreak in the visiting camp. India were leading 2-1. The series is part of the ongoing ICC World Test Championship 2021-23.