The deal will keep the 25-year-old at Headingley until at least 2019.
"I couldn't see myself playing cricket for any other county," said Root, who made his first-class debut for his home county in 2010 after coming through the club's academy set-up.
Root has scored 3,406 runs in 39 Test matches at an average of 54.93 and 2,572 in 68 one-day internationals at an average of 44.34.
He is due to play for Yorkshire in their County Championship match against Surrey, which begins on Sunday, before joining up with England to prepare for the first Test against Sri Lanka.
Root said: "Even though I don't play as much as I would like for Yorkshire these days due to my international commitments, I still get a huge buzz wearing the white rose on my cap and representing my county."
Root scored 0 and 27 in Yorkshire's draw against Nottinghamshire earlier this week.
During the World Twenty20 in March, he was described by captain Eoin Morgan as the "most complete batsman" England has ever produced.
Root then hit 54 off 36 balls against West Indies to record the joint-fastest 50 in a World T20 final.
"Yorkshire have given me a great education and foundation as a cricketer and without the support of the players and coaches at Headingley I wouldn't be in the position I'm in today with England," he said.
Yorkshire director of cricket Martyn Moxon said Root is "maturing into a world-class player".
He added: "I am sure he will continue to achieve everything he wants starting this summer for England against Sri Lanka and Pakistan."
England batsman Joe Root has signed a new contract with Yorkshire.