Afridi scored just 30 runs in five innings and took only four wickets.
Colombo: Shahid Afridi's insipid performance has been a letdown for Pakistan in the World Twenty20 but captain Mohammad Hafeez sprang to the all-rounder's support saying he gave his best in the tournament.
The former captain played a poor shot to be bowled out on the first delivery he faced against Rangana Herath with Pakistan struggling during their chase of 140 runs for a place in Sunday's final.
Afridi, who 16 years ago on the same day struck the fastest century in 50-over cricket against the same opponents, took the prized wicket of Sri Lankan captain Mahela Jayawardene on Thursday but has been cold with both bat and ball in the tournament.
"He is a match winner, there is no doubt about his abilities. But I think... he is really in a bad form at the moment," Hafeez told reporters when asked about the 32-year-old all-rounder's performance.
Afridi scored just 30 runs in five innings and took only four wickets with his leg-spin bowling in six matches.
"He's really worked hard in the whole tournament, but unfortunately things didn't work for him," Hafeez said.
"I can understand as a captain, as a player, when things don't work for you. But he is a character, he is always a hard-worker and I think he is trying to come out of it (which) is a positive sign for us as a team. So that's the reason we have given him all the chances."
The 2009 champions lost the first semi-final against hosts Sri Lanka by 16 runs on Thursday.