The 30-year-old, who scored 66 goals in 153 appearances for Doncaster from 2016 to 2019, has penned a two-year deal at the Memorial Stadium.
He said: "I'm very excited, I'm looking forward to starting a new challenge with Rovers. After speaking to the manager and coming down to The Quarters, I knew that this would be the perfect place to play my football for the next couple of years."
No regrets about turning down new Rangers contract says Doncaster Rovers defender James Maxwell
Doncaster Rovers ‘were never going to match my ambitions’ claims former boss Darren Ferguson
Doncaster Rovers’ injury update as Joe Olowu likely to miss AFC Wimbledon trip
Doncaster Rovers: Gary McSheffrey’s praise for youth team striker Jack Goodman
Doncaster Rovers players ratings in humbling 3-0 defeat to Lincoln City
Marquis was a free agent after leaving Lincoln City in May.
The ex-Millwall youngster managed five goals in 20 appearances for the Imps after joining them on a short-term deal until the end of the 2021/22 season in January.
Portsmouth are believed to have paid a seven-figure fee to Doncaster for Marquis’ services in 2019.
Bristol Rovers’ manager Joey Barton added: "John is a player I’ve admired for some time. He is a real coup for us, a proven goalscorer at League One level and a great addition.
"After speaking to him over the last few weeks it was clear that, like me, he believes he can continue to improve. Our group will continue to push to get better every day and John will fit in superbly.
"John is keen to get going and will fly out tonight to join up with us in Portugal in what has already been a really solid few days of training."
Barton’s Rovers were promoted to League One last season – just 12 months after their relegation from the third tier.