Durham made the most of what play was possible at Chester-le Street to move towards a Division One victory over Surrey.
Jamie Harrison took five of the seven wickets to fall in just 22.4 overs as Surrey were dismissed for 108 in reply to their hosts' 421 and then slumped to 52-3 following-on.
Surrey resumed on 97-6 and soon lost captain Gareth Batty, who found point swiping at Chris Rushworth.
Harrison, appearing for the first time in more than a year, then mopped up the tail in short order - Chris Tremlett and Tim Linley hit bang in front and Jade Dernbach losing his off stump.
That left Harrison with figures of 5-31, and the bandwagon was rolling again as he bowled Arun Harinath round his legs to leave Surrey 2-1 at the second time of asking.
Rory Burns and Vikram Solanki then went to successive Usman Arshad balls, leaving Hashim Amla to restore a measure of order and steer his side to stumps.