Vice-captain Sarwan and Chanderpaul added a record 157 for the fourth wicket to spur the home team to the victory target of 254 for four on the fourth day at Queen's Park Oval.
West Indies scored 294 in its first innings, and Sri Lanka 278 and 268.
Sri Lanka had early success through seamers Chaminda Vaas (two for 52) and Thilan Thushara (one for 49) but Muttiah Muralitharan failed to fire and endured figures of one for 92.
Sarwan's 10th Test century was decorated with 15 boundaries and spanned 172 deliveries and four and a quarter hours.
Chanderpaul, in his 109th Test, was a perfect foil in striking seven fours off 146 balls in three and a half hours.
Initial strike
Sri Lanka had an encouraging start when West Indies openers Chris Gayle and Sewnarine Chattergoon fell in successive overs at 24-2.
Thushara made the initial strike when captain Gayle slashed a back-foot drive on 10 and Tillakaratne Dilshan pouched a fine catch over his shoulder running back at backward point.
Chattergoon perished one run later for 11 when Vaas angled one in and gained a clear lbw verdict.
Sarwan, with three half centuries already in the series, was in commanding form but Sri Lanka missed a run-out opportunity against the West Indies vice-captain when he was on 14.
Marlon Samuels was late to send back his partner but Sarwan survived as Dilshan's throw at the bowler's end stumps missed with the Guyanese batsman stranded.
Sarwan and Samuels added 49 for the third wicket before Vaas returned for a second spell and was rewarded in his second over.
Samuels, on 11, drove a slower ball to cover where Malinda Warnapura grabbed a good low catch diving forward.
Sarwan and Chanderpaul took the team to lunch at 93-3 and grew in confidence in the second session to dull the visitors' varied attack.
Sarwan passed his 50 off 76 deliveries just after the break, while Chanderpaul's landmark arrived just before taking his side to tea at 194-3.
Both batsmen offered the Sri Lankans little scope for optimism and Sarwan brought up his first century against Sri Lanka with a cracking sweep off Muralitharan for his 15th boundary.
Soon afterwards, Dilshan missed another run-out chance to remove Chanderpaul on 54 at 205-3.
Sarwan eventually fell to Muralitharan when he gave a bat-pad catch to silly point.
By then, it was too late for the Sri Lankans and Devon Smith cracked three fours including the winning boundary in his unbeaten 18.
Chanderpaul stayed until the end, moving into fourth on the all-time West Indies runscorers list with 7,559, surpassing Desmond Haynes (7,487), Clive Lloyd (7,515) and Gordon Greenidge (7,558).
Sri Lanka won the first Test by 121 runs in Guyana for their first victory in the Caribbean.
The teams play a three-match one-day-international series starting on Thursday at the Queen's Park Oval.