India skipper Sourav Ganguly pointed the finger of blame at his batsmen after Pakistan dumped his side out of the Champions Trophy at Edgbaston.
India lost by three wickets after scoring only 200 batting first, with Rahul Dravid the only one to pass 50.
"It was the batting which let us down," said Ganguly, who scored a duck.
"We didn't deserve to win. It's a question of form and a few guys have been failing for too long. We just didn't bat well enough."
He added: "Edgbaston has always been a low-scoring ground. [A score of] 230 would have seen us through, but to be honest we haven't been batting well enough for the last four months.
"They will have to pull their socks up. You cannot keep on not scoring runs and expect to keep on playing.
"When the main batsmen in the team keep on failing, the batting never gets momentum."
Ganguly refused to blame the outcome on the toss.
"We were very fortunate that they put us in. It was a pretty good wicket and I would have batted first," he admitted.
Although Pakistan only won in the last over, India never looked likely winners with Yousuf Youhana crafting an excellent 81 not out despite suffering from cramps.
"It was Yousuf's batting. If he would have got out, we would have won this game," Ganguly claimed.
"The way he batted, he saw the game through.
"I thought the bowlers bowled pretty well. That was the reason we almost came through."
India now return home to prepare for their four-Test series against Australia, while Pakistan face West Indies in the second semi-final at the Rose Bowl on Wednesday.