Nifty ended at 25,571.25, gaining 116.90 points or 0.46%, the BSE Sensex settled 316.57 points or 0.38% higher at 82,814.71.