Bristol Bears continued their bid for a home play-off semi-final with a bonus-point victory at Worcester Warriors.
Ed Holmes' early try put Bristol ahead but Melani Nanai's converted score and two Duncan Weir penalties gave the Warriors a 13-10 lead at the break.
The Bears dominated the second period as Dan Thomas put them back in front and Siale Piutau also crossed.
Replacements Andy Uren and Ben Earl got in on the act as Pat Lam's side moved up to second in the Premiership table.
Worcester forward Andrew Kitchener was sent off in the last minute for a punch to the face of Piutau, who was ordered to the sin-bin for his part in the incident.
Bristol started the game brightly with the ball in hand, and bursts from Piutau and Harry Randall set the platform for lock Holmes to go over from close range.
The hosts responded well and Nanai, returning from a three-match ban, pounced on a loose ball after Weir and Noah Heward had both kicked ahead.
Bristol prop Kyle Sinckler spurned a good try-scoring opportunity at the end of the first half but the Bears exerted more control over the ball and territory in the second period, scoring 26 unanswered points.
Thomas grabbed their second score as a rolling maul went over following a five-metre line-out.
Piutau ran a good line to break through the Worcester defence for the third and Earl was then denied a flowing try because Henry Purdy had a foot in touch before offloading in the build-up.
The bonus-point score did come with 12 minutes remaining as Uren showed good feet to kick ahead and finish, and Earl benefitted from a turnover to get on the score sheet.
Bristol's first win in three puts them three points ahead of Sale Sharks, who travel to Leicester on Saturday.
However, the Bears will have concerns over scrum-half Randall, who suffered a serious-looking injury in the second half when he went down off the ball clutching his right knee.
Kitchener's late dismissal summed up a poor second half for Warriors, who have now won just one of their past 11 league games.
Worcester director of rugby Alan Solomons:
"The first half, I thought we played really well. We had a number of try-scoring opportunities.
"But the second half, we came out and turned over a plethora of ball and we ended up tackling the whole of the half.
"We couldn't build any pressure.
"Full marks to Bristol - they deserved their win - but I think we made a rod for our own back with what we did."
Bristol director of rugby Pat Lam told BBC Radio Bristol:
"I am pleased we got the five points. Second half was a lot better but our discipline was poor again.
"Before Covid, we were only averaging eight penalties. Now we are averaging 17, and that is an area we need to improve on.
"At half-time we said we need to get the ball, control the game and put them under a bit of pressure.
"We know we haven't put together the perfect game yet. We have got a long way to go."
Worcester Warriors: Nanai; Howe, Lawrence, Venter, Heward; Weir, Hougaard; Waller, Annett, Schonert, Bresler, Kitchener, Hill (capt), Kvesic, du Preez.
Replacements: Miller, Black, Palframan, Kitchener, Cox, Simpson, Searle, Beck.
Red card: Kitchener (80).
Bristol Bears: C Piutau; Morahan, Radradra, S Piutau, Purdy; Sheedy, Randall; Lahiff, Byrne, Sinckler, Holmes, Vui, Luatua (capt), Thomas, Hughes.
Replacements: Thacker, Woolmore, Afoa, Joyce, Earl, Uren, Lloyd, O'Conor.
Sin-bin: S Piutau (80).
Referee: Wayne Barnes.