The 21-year-old Arsenal youth product arrives from Burnley, where he made six top-flight starts.
"I was impressed last season by how close they got to promotion and getting in the play-offs, so I'm excited to join the team," said Essex-born Benson.
"I've had a taste of the Premier League and that's definitely my main goal, to play in the Premier League."
On arriving at the club, new coach Markus Schopp outlined a replacement for central midfielder Alex Mowatt as a priority after the captain ran down his contract and followed Schopp's predecessor Valerien Ismael to West Bromwich Albion.
Schopp had initially hinted he was looking for someone to replace Mowatt's experience as well as his qualities in possession, but instead the club have made a long-term investment from the compensation they received when Ismael and some of his backroom staff departed.
"As we continue to progress, we aim to bring in unique talent to assist us in our next step and Josh’s experience at Premier League level is an important evolution of the squad," explained co-chairman Paul Conway.
“Also, the length of this deal is significant, as it demonstrates both the club’s long-term commitment to Josh and his commitment to the club.”
Benson is the Reds' third signing of the summer, following strikers Devante Cole and Obbi Oulare. Oulare's compatriot, Toulouse's Belgian forward Aaron Leya Iseka.
The size of Benson's transfer fee has not been disclosed