Preheat oven to 350 degrees with racks in top and bottom thirds. Line twenty-four muffin cups (1-cup capacity) with paper or foil liners, and set aside. Whisk together flour, baking powder, and salt in a medium bowl, and set aside.
Combine butter and sugar in a large bowl; beat until pale and fluffy, about 2 minutes. Add eggs one at a time, mixing well after each addition. Add orange zest. Beat in flour mixture and milk in three alternating batches, beginning and ending with flour mixture. After each addition, beat until just combined, scraping down sides and bottom of bowl as necessary.
Fill prepared muffin cups with about 1/4 cup batter. Bake, rotating pans once, until cupcakes are just golden brown and spring back to the touch, 18 to 20 minutes. Let cupcakes cool in tins, about 5 minutes, then turn them out onto wire racks. Repeat with any remaining batter. Let cool completely.
Beat cream cheese, butter, and sugar in a small bowl until just smooth. Add milk and vanilla; beat frosting until combined. Use immediately.