Sri Lanka held off a surging West Indies to secure victory by 23 runs at the Cricket World Cup on Monday.