Sensex rose 46 points to close at 18,870 due to rise in oil&gas, PSU and healthcare stocks amid a weak global trend.