Steven Davies, who made 99 against Northants two games ago, missed out on a century again at Chester-le-Street as he was stumped off Ryan Pringle for 98.
But Surrey managed to post a total of 271-7 and no Durham batsman was able to play a major innings in reply.
A spell of 3-34 by James Burke left them too much to do and they were all out for 222 in the 47th over.
Seamer Burke was the fifth bowler used by Surrey skipper Gareth Batty, but had Graham Clark lbw for a fifth-ball duck before claiming the crucial wicket of Paul Collingwood, who was bowled for nine, and having Gordon Muchall caught behind.
Pringle top-scored with 35, and John Hastings (31) and Usman Arshad (25) added 52 for the ninth wicket, the highest partnership of the innings, but it was too little too late for the previously undefeated home side.
Earlier, Davies struck eight fours in his 109-ball knock, having set Surrey on their way by sharing an opening stand of 78 in 11.5 overs with Jason Roy (34).
Surrey batsman Steven Davies:
Media playback is not supported on this device
"I'm feeling pretty good but it would be nice to make a hundred after getting out for 99 and 98.
"I felt after 35 overs we were in a good position to push on, but Pringle beat me with the first one he turned.
"We bat a long way down and have a good method in this competition.
"You know when you come to Durham you have to work for your runs so we were happy with our total."
Durham coach Jon Lewis:
"Surrey squeezed the new batsmen better than we did and they had the one batsman who built an innings.
"Our top three got to 25 then got out, which doesn't win you Twenty20 games, never mind 50-over ones.
"There has been some honesty in the dressing room with a couple of guys admitting they thought they were still batting at Taunton."
Surrey maintained their unbeaten start to this season's One-Day Cup win a comfortable 49-run win over Durham.