The Chelsea youth product was already under contract until 2025, a deal he signed in January 2020.
James made his first-team debut for the Blues in September 2019 and has made 128 appearances, helping them win the Champions League in 2021.
"I am over the moon with my new contract, I cannot wait to see what the future holds," said the 22-year-old.
"I am sure we will have the chance of winning many trophies.
"I grew up supporting this club and I've been here since I was a six-year-old. This is the club I want to be at."