Martin Bicknell took four wickets for 72 runs to help Surrey pick up maximum bowling points as they bowled out Somerset for 199.
Confident batting from Ian Ward and Darren Bicknell then saw Surrey end the day in control as they progressed to 94 for 1 by the close.
Their position would have been even stronger had it not been for some late resistance from Robert Turner in an otherwise tame batting display from Somerset. The wicketkeeper hit a spirited 67 to take the score on from 143 for 9 with some positive strokeplay after his side had batted after winning the toss.
Turner reached his 50 off 111 balls and was finally dismissed playing on by Ben Hollioake for 67 after adding 56 - the highest partnership of the innings - with Matthew Bulbeck, who finished unbeaten on 12.
After winning their last two matches, unbeaten Surrey will now have high hopes of leapfrogging Somerset, who started the day fourth in the table.
Bicknell made an immediate impact in the morning session, claiming the wickets of Jamie Cox, Piran Holloway and Marcus Trescothick to leave Somerset on 30 for 3. The opener Peter Bowler and Michael Burns steadied the innings briefly but the former was deceived by Ian Salisbury and the latter was caught behind by Alistair Brown off Hollioake before lunch to leave Somerset on 97 for 5.
The visitors continued to struggle, adding just 14 before Bicknell claimed his fourth victim - his 21st wicket of the season - when Jason Kerr fell for 21 after edging the ball to wicketkeeper Jonathan Batty.
Salisbury then grabbed his second wicket when he bowled Keith Parsons and Alex Tudor took his first when Adrian Pierson edged the ball to Brown at slip.
Andy Caddick added just one run before being caught behind by Batty as Salisbury claimed his third wicket.
In reply, Surrey began steadily but lost their acting captain Mark Butcher, who went for 12 after clipping a ball from Bulbeck straight into the hands of Burns.
Ward (44 not out) and Darren Bicknell (36no) added another 71 runs to put Surrey well in control.
Glamorgan soon began to crumble after dismissing Worcestershire for 164 at New Road yesterday. For the hosts, beaten in their last three championship outings, it was another disappointing batting display, although they hit back in dramatic style by reducing their visitors to 27 for 4 by tea. They continued in fine style, reducing Glamorgan to 121 for 8 at the close.
The main contributor to Worcestershire's mediocre total was the former Nottinghamshire left-hander Paul Pollard, who made a determined 52 which contained nine fours.
After winning the toss, Worcestershire soon lost Reuben Spiring for 11 before Pollard and Vikram Solanki kept the Glamorgan attack at bay for 18 overs with a partnership worth 56.
The stand, however, was broken when Adrian Dale trapped Solanki for 35 which included seven fours off 54 deliveries.
Dale struck again next ball to remove David Leatherdale and from then on it was a constant uphill battle for the Worcestershire batsmen.
Pollard's determined reign came to an end when he was ousted by Steve Watkin.
Glamorgan, whose most productive bowlers were Dale (3 for 29) and Darren Thomas (3 for 40), soon hit major problems when they launched their reply with Alun Evans and Steve James being dismissed in successive balls to Phil Newport and Alamgir Sheriyar respectively.
The in-form Sheriyar then followed up by removing Keith Newell and then Newport dismissed Dale.Reuse content