The euro Thursday reached a one-month high against the dollar following a solid German economic report and disappointing US data.
Near 2200 GMT, the euro traded at $1.3277, up from Wednesday's level of $1.3199 after reaching a peak of $1.3296 earlier in the day, the highest level since June 19.
The dollar also sank against the yen, buying 99.24 of the Japanese currency compared with 100.26 yen.
The euro fell to 131.75 yen from 132.34 yen the prior day.
The Ifo economic institute's closely watched German business climate index climbed to 106.2 points this month from 105.9 in June. Analysts polled by Dow Jones Newswires had expected a more modest rise to 106.0 points.
Ifo calculates its headline index on the basis of companies' assessments of their current business and the outlook for the next six months.
The fresh German data comes on the heels of other European indicators that suggest "stabilization in the eurozone's economy," according to Omer Esiner, chief market analyst at Commonwealth Foreign Exchange.
Still, the results from Europe are not convincing enough to alter the easy-money policy of the European Central Bank, "which should in turn keep the euro's gains limited," Esiner said.
The dollar also took a hit from Thursday's US economic data, which showed a jump in jobless claims.
Durable goods orders rose 4.2 percent in June, but BK Asset Management managing director Boris Schlossberg said the result missed expectations when the volatile transportation sector is excluded, leaving orders flat.
"The weak durable goods numbers on the back of disappointing retail sales data last week paint a disappointing picture of US final demand and suggest that the pace of economic growth may be slowing," Schlossberg said.
"The recent weakness in US economic data is clearly creating some doubt in the currency market regarding Fed's timetable to taper QE," he said, referring to the Federal Reserve's $85 billion-a-month asset purchases.
Among other currencies, the British pound rose to $1.5384 from $1.5311 Wednesday.
The dollar dropped to 0.9302 Swiss franc from 0.9373.