The 33-year-old paceman has not played a Test in almost two years and said in a letter to the Sri Lankan board that he was retiring with "immediate effect".
"I hope it will allow me to better prepare for ODI and T20 cricket, which I would like to continue playing for Sri Lanka subject to good performance and selection," he said.
Kulasekara made his Test debut against New Zealand in 2005 and went on to play 21 Tests, capturing 48 wickets.
His last Test appearance, in 2014, was also against England at Lord's although he has remained a regular fixture in Sri Lanka's one-day international and Twenty20 line-ups.
More From This Section
He has so far played 173 ODIs and was ranked as the number one bowler in the world in March 2009.
Kulasekara has also played 50 T20 internationals, including the recent World Cup in India.
Meanwhile, veteran opening batsman Tillakaratne Dilshan announced on Tuesday that he would be unavailable for the upcoming limited-overs series with England, with the 39-year-old citing a back injury and "other personal reasons".