The euro held at a one-month high against the dollar on Thursday, having rallied on hopes the war in Ukraine might be entering a new de-escalating phase, while the yen was set for its worst month since November 2016.
The European single currency was at $1.1175 holding its highest in a month, having gained 1.7% so far this week.
"The euro has been one of the biggest winners over the past sessions, part of that reflects the positive news about the Russia Ukraine tensions," said Carol Kong, an FX strategist at Commonwealth Bank of Australia.
Kong said sustained euro gains would be dependent on further developments in Ukraine.
At peace talks this week in Istanbul, Russia said it would curtail operations near Kyiv and the northern city of Chernihiv to build trust, though Ukraine and its Western allies dismissed Russia's pledge as a ploy to stem losses and prepare for other attacks.
Ukrainian forces are preparing for new Russian attacks in the east of the country, President Volodymyr Zelenskiy said on Thursday.
The euro's gains, as well as a brief recovery for the Japanese yen and strength for commodity currencies like the Canadian dollar, meant the dollar index fell to 97.681 overnight, its lowest level in three weeks.
It was at 97.778 on Thursday morning.
However, the yen resumed its decline on Thursday, with the dollar climbing 0.5% to as high as 122.45 yen.
The Japanese currency has fallen sharply this month, dropping to its lowest since November 2015 on Monday, before recovering slightly over the following days.
Intervention by the Bank of Japan to prevent government bond yields rising too high has reinforced the contrast with rising rates in the United States, causing the yen to decline.
It is set for its worst month since November 2016.
Thursday's moves in Japanese assets are likely to be choppy, said CBA's Kong as it is the end of the fiscal year.
Elsewhere, sterling was fairly steady at $1.3143, and the Aussie dollar was at $0.7509 holding this month's 3.3% gains, but struggling to climb higher.
In cryptocurrency markets, bitcoin was at $47,240 not too far off its year-to-date peak of $48,234 hit earlier this week.