Ukraine says it has forced Russian troops to retreat from its second city.