Market snapped its 3-day losing run as Sensex gained over 300 points while Nifty ended above 15,800 mark.