The contract ends months of speculation about the 18-year-old England winger’s future.
In January, Hudson-Odoi handed in a transfer request after Chelsea rejected a £35m bid from Bayern Munich.
But the teenager received assurances about his future from new manager Frank Lampard in the summer, and indicated then he was ready to commit his future.
He is set to return to the first team after recovering from an Achilles injury suffered in April.
“It’s been a long wait but it’s done now and I’m really happy about that,” Hudson-Odoi said. “I’ve been a Chelsea player since I was eight and this is the right club for me to be at.
“I’m delighted everything has been agreed and now I’m just looking forward to properly getting back.”
Throughout the negotiations, playing time is understood to have been the key issue for Hudson-Odoi, who made 24 appearances and scored five goals under former boss Maurizio Sarri last season.
But he had to wait until April to make his first Premier League start, having already made his England debut.
Lampard said the academy graduate can be a “central” to Chelsea and England in the future.
“That is the opportunity in front of him now. Callum can show, right here at Chelsea, the club he came through the academy at, that he is going to be a world-class player because I truly believe that.”
Midfielders Mason Mount and Ruben Loftus-Cheek have also signed new deals since Lampard took over from Sarri.
Subscribe to the latest post