Sri Lankan troops have taken control of a crucial area near the north-eastern town of Trincomalee held by the Tamil Tiger rebels, the military says.
Troops and rebels have fought fierce battles in recent months
A defence spokesman said government forces had met little resistance when they moved into the town of Sampur.
The rebels, who have used the area to launch artillery attacks on Trincomalee port, have vowed to carry on fighting.
Clashes around Sampur started more than a week ago. Sporadic violence is continuing in the north of the country.
The BBC's Dumeetha Luthra in Colombo says the fall of Sampur is a strategic victory for the government, but adds that analysts believe the Tigers may retaliate elsewhere.
Trincomalee, with its naval and industrial resources, still remains vulnerable to further attack by the rebels, who retain control of other territory in the area.
It is the first change of territorial control since a ceasefire was agreed in 2002.
The Tamil Tigers have called on international truce monitors to declare the ceasefire now officially over. The monitors say only the government or the rebels themselves can do that.
Troops backed by air support began a major offensive to take Sampur in late August.
The military said its forces entered Sampur in the early hours of Monday, that it now controls 75% of the area and that it would move to consolidate that.
"We are in total control," defence spokesman Keheliya Rambukwella told reporters.
He said the entire harbour mouth, including several Sea Tiger bases, was now in the hands of the military.
"Troops are now engaged in clearing operations," he said. "The only resistance we encountered was mines and booby-trapped devices."
President Mahinda Rajapakse formally announced the capture of the strategically-important town at a rally of the ruling Sri Lanka Freedom Party.
"Our troops have captured Sampur," he said to loud applause. "This is not war, we are only responding to an attack on us."
The Tamil Tigers said their fighters were still "fiercely resisting" government troops.
"We are still fighting in the Sampur area," the rebels' political leader in the Trincomalee area, Elilan, told the BBC.
But another rebel spokesman conceded that the town itself was no longer in their hands.
The rebels say the army's advance claimed nearly 100 civilian lives and that thousands of others have been displaced.
The past month has seen the worst violence since the truce deal was struck four years ago.
Hundreds of people, many of them civilians, have been killed in clashes this year.
The UN says more than 200,000 people have been displaced.