The deal, which needs parliamentary approval, would eventually see a near-elimination of duties on goods coming into Canada from Ukraine.
And it comes as the government of Ukrainian President Petro Poroshenko grapples with a populist move to water down economic changes demanded by the International Monetary Fund.
Harper announced the free trade agreement as he met Tuesday with Ukraine's prime minister, Arseniy Yatsenyuk, making clear that the deal was not just about creating jobs, but also a signal of Canada's continued commitment to aid Ukraine in its fight against Russian-backed aggression in eastern Ukraine.
"This is increasing economic opportunity for Canadians and Ukrainians," Harper said as he stood alongside Yatsenyuk in a dimly lit, darkened room at a government conference centre that overlooks picturesque Meech Lake in Chelsea, Que.
"It's also, I think, a step towards helping Ukrainians realize the future that they want," Harper added. "Ukrainians do not want a future based on oppression and a Soviet past. The Ukrainian people want a western future, a future of prosperity."
Once in force, the agreement would eliminate 99.9 per cent of tariffs on current imports from Ukraine into Canada, and 86 per cent of Ukrainian tariffs on Canadian products including all tariffs on industrial goods, forestry and wood products, fish and seafood products.
Canadian pork producers would continue to face trade barriers but others, including grains and oil seeds exporters and beef producers, would gain unhindered access to Ukraine's market.
Total back-and-forth trade between Canada and Ukraine averaged $347 million between 2011 and 2013, according to Canadian government officials, but slowed to just $244 million last year as Ukraine dealt with political upheaval and armed conflict in southern and eastern parts of the country. Canada has also provided Ukraine with $400 million in low-interest loans since a political crisis erupted there in 2013.
Beyond its potential economic value, though, the trade agreement cemented Canada's involvement in helping Ukraine move away from Russian influence, Yatsenyuk said as he thanked Harper for his resolve in achieving the deal.
"You, together with our international friends and partners, you are the flagship in supporting Ukraine in our quest and fight against the Russian-led terrorists," Yatsenyuk said before the two men shook hands.
The agreement also comes just weeks ahead of a fall federal election campaign in which Harper is expected to draw heavily on his Conservative party's support for Ukraine as an indication of how Canada under his leadership has stood up against Russian President Vladimir Putin's push to retake territory lost in past conflicts.
In a telephone conversation with Poroshenko prior to witnessing the signing of the trade deal with Yatsenyuk, Harper reaffirmed Canada's commitment to aid Ukraine’s efforts to combat Russian aggression in eastern Ukraine.
Aside from improving trade and providing financial support to Kiev, Canada has also given non-lethal military aid to Ukraine to help fight pro-Moscow separatists. Ottawa is also expected to send Canadian Forces personnel to train Ukrainian troops.
Yatsenyuk visited Washington on Monday where U.S. Vice President Joe Biden warned the Ukrainian government to start actively curbing corruption.
Canada has concluded free trade negotiations with 39 countries since 2006, most notably with the European Union — although details of the Canada-EU tentative deal have yet to be finalized nearly two years after it was announced.
Follow @tpedwell on Twitter