Markets ended marginally lower in a range-bound session on Thursday. The BSE Sensex ended at 45,959.88, down 143.62 points or 0.31%. The Nifty was at 13,478.30, down 50.80 points or 0.38%.