Preheat oven to 350°F. Line a muffin tin with 12 cupcake liners.
In a medium bowl, whisk together flour, baking powder, and salt.
In a large bowl, cream together 1/2 cup butter and the granulated sugar until light and fluffy. Beat in eggs one at a time.
Mix in half of the dry ingredients, followed by the milk and key lime juice. Add remaining dry ingredients and key lime zest, mixing until just combined.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full.
Bake for 20 minutes or until a toothpick inserted into the center comes out clean. Allow to cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
For the frosting, beat together cream cheese and 1/2 cup butter until smooth. Gradually add powdered sugar, then mix in key lime zest and juice until creamy and spreadable.
Frost cooled cupcakes and optionally garnish with a small slice of key lime or a sprinkle of lime zest.