Surrey began with a precarious lead of 145 but Glamorgan posted a relatively defensive field, with Lawes and Clark appearing in little difficulty.
Lawes, a mid-match sub for England call-up Gus Atkinson, was striking the ball sweetly with 10 fours to belie his number eleven position – after Surrey used two nightwatchmen.
They had set a new tenth wicket record for Surrey against Glamorgan of 105 by the time Clark (36) skied departing Australian paceman Hadley to Chris Cooke to end Glamorgan’s travails.
Glamorgan’s pursuit started disastrously when Billy Root was run out off the fourth ball as he went for a leg-bye and finished at the same end as Asa Tribe.
Carlson and Tribe took an active approach in their stand of 71, despite having moments of difficulty against Dan Lawrence.
But it was fellow spinner Chahar who made the breakthrough when Tribe (30) edged a defensive push to wicketkeeper Ollie Pope.
Ingram nearly played on to Chahar, but took advantage of a few loose deliveries from the Indian international including a six over long-on.
His stand with Carlson was worth 62 by the time the Glamorgan skipper was bowled round his legs sweeping at Chahar, but with just 62 needed at that stage it was too late to revive any real hopes for the visitors.
Ingram, who had not fielded at all because of a finger injury in the first innings, sped Glamorgan to the target alongside Sean Dickson (26 not out).
The result was particularly welcome for the Welsh county given they had started the game eighth in Division One, with the two sides below them – Leicestershire and Hampshire – also taking winning points.
Glamorgan returned to the top half of a closely-packed table before the teams resume T20 action.