The 26-year-old wicketkeeper-batsman hit 1,108 Championship runs at an average of 92.33 as the Headingley side retained their title in 2015.
He is with the England side for their winter tour of South Africa.
"It is great news that Jonny has signed on. He has been a big part of our success in the last few years," said director of cricket Martyn Moxon.
"He is maturing and is an integral part of what we do. His best years are yet to come. I have great admiration for Jonny and his talents. I hope he can fulfil his full potential in the coming seasons."
Bairstow, who has 20 Test caps for England, added: "We had a tremendous season in Championship cricket, lifting the title for a second successive season.
"It is great to be part of a culture where winning and being successful is at the heart of what drives the team on."
Meanwhile seam bowler Jared Warner and all-rounder Matthew Waite, both 19, have signed two-year junior professional contracts having graduated from the club's academy.
Yorkshire's England international Jonny Bairstow has signed a new three-year deal with the county champions.