The six-nation tournament, not held since May 2000 due to political tensions between India and Pakistan, will be organised between July 15 and August 1, according to Sri Lanka Cricket spokesman Mohan De Silva.
"We are pleased to accept an offer from the Asian Cricket Council to host the Asia Cup," said De Silva on Friday.
The tournament was originally scheduled to be held in Pakistan in late April soon after India's tour of that country which starts in March.
But the idea was dropped after India said it had a commitment to play a Test series in Bangladesh soon after the Pakistan tour.
The continent's four Test-playing nations -- India, Pakistan, Sri Lanka and Bangladesh -- will contest the Asia Cup alongwith qualifiers Hong Kong and the United Arab Emirates.
India has won the tournament three times, Sri Lanka twice, and Pakistan once.
Sri Lankan Cricket (SLC), meanwhile, is negotiating with India to take part in two separate One-day tournaments in 2005 and 2006 to augment its financial resources.
The 2005 tournament will also include the West Indies, while South Africa have been invited as the third team for the 2006 event.
If India agree, it will be a major boost for Sri Lanka's cash-strapped Board, which has been struggling to sell its television and sponsorship rights.
The Indian team is considered a major draw with sponsors due to its vast cricket-mad television audiences.
The SLC had in December invited bids for TV rights for international cricket in Sri Lanka for the next three years, but abandoned the plan when the bids were found to be too low because no tour by India was scheduled.
Asia Cup may be held in July: Dalmiya
Asia Cup not to be part of Indo-Pak