Surrey 220 and 232 for 5 (Foakes 81*, Burns 74) lead Gloucestershire 326, Topley 5-66) by 126 runs
Graeme van Buuren's third century for Gloucestershire, in only 94 balls, steered them to an eight-wicket victory over Surrey at Bristol and a first win in the fixture since 2011.
Van Buuren's unbeaten 110 and 91 not out from captain Chris Dent saw the home side canter to their target of 228 in only 38 overs with an unbroken third-wicket partnership of 193.
Ben Foakes' 133 had given Surrey hope of saving the game but Gloucestershire took their final five second-innings wickets for only 15 runs to leave 63 overs for the chase.
Dent anchored the pursuit with his second half-century of the match, in 71 balls, but van Buuren's hundred with 15 fours and two sixes turned it into a waltz.
He pulled Reece Topley over square leg and then fine leg for maximums. He drove Topley through mid-off for four and punched Amar Virdi smartly down the ground. A thick edge from Jamie Overton flew just wide of gully before he reached fifty in only 44 balls and he swept Virdi for four to raise the hundred partnership.
After a brief rain delay he reached his first hundred since 2016 by swatting Jordan Clark through midwicket before Dent carved Overton to third man to complete an extremely impressive victory over the 2018 county champions.
"What a team performance, everyone put up their hand and fortunately Denty and I put together a great partnership," van Buuren said. "After my first-innings duck I worked on a couple things in the nets and managed to get something to click.
"We needed to show positive intent in the chase and we just got the runs flowing and it was so much fun out there."
Gloucestershire were initially frustrated in their victory push as Foakes and Clark extended their sixth-wicket stand to 131 in the morning session to push the lead beyond 200. Foakes made his 11th first-class century and fourth against Gloucestershire, this in 187 balls with 16 fours.
Clark's seventh boundary, driven though cover off Ryan Higgins, brought him fifty in 100 balls as Surrey's hopes of escaping up the M4 with a draw grew. Matt Taylor finally found the breakthrough with one that nipped in from round the wicket to trim Clark's leg bail before full balls from Higgins won lbws against Jamie Overton and Gus Atkinson.
Foakes then fell to a superb catch from wicketkeeper James Bracey diving low to his right and when a moment's indecision allowed Tom Lace to run out Amar Virdi with a direct hit from point, Surrey had crashed to 333 all out and the chase was afoot.
Bracey lifted Virdi to mid-off and Lace was taken at third slip before the match-winning stand between van Buuren and Dent began.
Surrey head coach Vikram Solanki said: "Disappointing would sum it up. We were under par with the bat to begin with, managed to fight our way back into the game but left ourselves with too much to do and were certainly second best.
"I think we should have made the chase a lot harder than we did but we have to go back to the first innings with the bat and then how we started with the ball was poor and we almost conceded a hundred-run lead before we started.
"But credit to Gloucestershire today they hung in there when we had those partnerships and always stayed in the game."