Preheat oven to 350°F. Grease and line two 9-inch round pans.
Whisk flour, baking powder, and salt.
Beat butter and sugar until light and fluffy. Add eggs one at a time. Mix in lemon zest, lemon juice, and vanilla.
Alternate adding dry ingredients and milk. Mix just until combined.
Divide batter between pans. Bake 25–30 minutes until a toothpick comes out clean. Cool completely.
Beat filling ingredients until thick and creamy.
Place one cake layer down, spread filling evenly, top with second layer.
Beat frosting ingredients until smooth. Frost top and sides.
