Ukrainian troops in recent days recaptured four settlements north of Ukraine's second-largest city, said Tetiana Apatchenko, a media officer with the main Ukrainian force in the area.
President Volodymyr Zelenskiy said the Ukrainian successes were gradually pushing Russian forces out of Kharkiv in the country's northeast, which has been under perpetual bombardment since the war began.
"But I also want to urge all our people ... not to spread excessive emotions. We should not create an atmosphere of excessive moral pressure, where victories are expected weekly and even daily," Zelenskiy said in a video address on Tuesday.
In Washington, top US intelligence officials said the war was at a stalemate. President Vladimir Putin appeared to be preparing for a long conflict, and a Russian victory in the Ukraine's eastern Donbas region might not end the war, Director of National Intelligence Avril Haines said.
But the counterattack near Kharkiv could signal a new phase, with Ukraine going on the offensive after weeks in which Russia mounted a massive assault without making a breakthrough.
By pushing back Russian forces who had occupied the outskirts of Kharkiv since the start of the invasion, the Ukrainians are moving into striking distance of the rear supply lines sustaining the main Russian attack force further south.
During a Red Square military parade on Monday marking the end of World War II, Putin exhorted Russians to keep fighting but gave no indication of his further strategy.
Since Russia was forced to abandon an assault on the capital Kyiv at the end of March, its main force has been trying to encircle Ukrainian troops in the Donbas, using the city of Izyum south of Kharkiv as a base. Ukrainian troops have mostly held out against assaults from three directions.
But by pushing back near Kharkiv, Ukraine could force Moscow to switch to trying to defend its own long supply lines to Izyum. Western military analysts said there were signs the counterattack was already sapping Russia's advance.
In the south, Russian forces were again pummelling the Azovstal steelworks in Mariupol, trying to capture the last bastion of Ukrainian resistance in the ruined city where Ukraine says tens of thousands of people have died under two months of Russian siege.
Scores of civilians have been evacuated from the steelworks in recent days, but an aide to Mariupol's mayor, Petro Andryushchenko, said at least 100 still remained inside.
In Odesa, firefighters battled blazes until the early hours of Tuesday after seven Russian missiles hit a shopping centre and depot on Monday. One person was killed and five people were injured, Ukraine's armed forces said.
Ukraine said its armed forces in the Donbas on Tuesday destroyed 12 Russian tanks and 19 armoured vehicles and shot down three aircraft.
The number of Ukrainians who have fled their country since Russia's invasion on February 24 is approaching six million, according to the United Nations, which says the refugee crisis is the fastest growing since World War II.
Russia calls its actions in Ukraine a "special operation" to disarm Ukraine and protect it from fascists. Ukraine and the West says this is a false pretext for an unprovoked war of aggression.
Western countries have placed sweeping sanctions on Moscow and are taking steps to ban or phase out the use of Russian energy.
Ukraine, which has remained a major route for Russian gas to Europe even after the invasion, said on Tuesday it would suspend use of a transit point for some Russian gas headed to Europe, blaming Moscow for the move.
It said it would redirect the gas from that transit point, which is in an area occupied by Russian forces, to another in a Ukraine-controlled area.