The Sensex opened marginally (16 points) higher at 13,011. Weakness in early morning trades forced the index tumble to a low of 12,831, but only to bounce back sharply into the positive zone. The first half of the trading day saw the index move in a broad range of 300 points, swinging in and out of the positive zone. Agressive buying in cement, banking and telecom stocks saw the index rally to a high of 13,223 - up 393 points from the day's low.The Sensex finally settled with a smart gain of 186 points at 13,181. In the process, the index also regained its psychological 13,000-mark, which it lost yesterday.