The 25-year-old former Newcastle United trainee played 36 times last season as Rovers won promotion to League One.
He joined Darrell Clarke's side in 2014 on a free transfer from Hereford and has made 60 appearances for the club.
"It's another clear indication that we want to reward and keep our most talented players," chairman Steve Hamer told the club website.
"He's a smashing lad and could go a long way in the game, hopefully with us at Bristol Rovers."
Bristol Rovers defender Daniel Leadbitter has signed a new two-year deal with the club.