Chasing 200 for victory, Pakistan were 104 for no loss in the 13th over when Moeen brought himself on and conceded 21 runs, including three sixes.
Pakistan seized the momentum and went on to win by 10 wickets, with skipper Babar Azam (27) hitting a brilliant century.
"The momentum changed when I bowled my over. That really gave them the belief and after that they were almost unstoppable," Moeen said.
"I felt like it was under control for most of it. I genuinely feel my over lost the game for us. That was a gamble on my part.
"I went to try and get a wicket, almost buy a wicket. Obviously it didn't work and that's when Pakistan really won the game."
The seven-match series is level at 1-1, with the third T20 to be played later on Friday.
England are playing four matches in Karachi and three in Lahore before returning in December to play three tests in the second leg of the tour. Before then, both sides will head to Australia for the T20 World Cup after this seven-game series.