A superb ton by Test batsman K L Rahul (107) went in vain as Karnataka went down by four runs to Punjab on Sunday in the Vijay Hazare Trophy Group 'A' league.