Goals from a Matt Richards free-kick and a close-range finish by Yado Mambo came from defensive errors by the hosts before Miller struck in a game which saw both sides edge closer to League One safety.
For much of the first half the game was locked in a midfield stalemate and the visitors rarely threatened Mark Gillespie's goal, apart from a free-kick from Jon Taylor which was on target until the goalkeeper beat the ball away inside his six yard box.
The game finally came alive with a double chance for Carlisle in the 37th minute, with on loan Wigan full-back Jordan Mustoe involved both times. First he forced keeper Chris Weale to turn a rasping 25-yarder over the crossbar, then he got to the byline to pick out Mark Beck who was unable to keep his header down.
The Shrews took the lead in the 63rd minute with a 30-yard free-kick by Richards which completely deceived Gillespie as it dropped over his head and into the back of the net.
Their advantage lasted less than two minutes though, with referee Mark Haywood sparking protests in the Shrews defence when he spotted a handball in a crowded area which gave Miller the chance to hammer the penalty past Weale into the top left-hand corner of the net.
Gillespie was at fault again in the 76th minute, failing to gather at his near post, and on-loan Charlton defender Mambo was on hand to squeeze the ball across the line from no more than a yard out.
Carlisle were back on terms with a second penalty from Miller in the 82nd minute. Substitute Mathieu Manset played Miller in and Weale brought the forward down, earning a yellow card. Miller repeated his first spot-kick, slamming the ball wide of Weale's right hand.