Preheat your oven to 350°F and grease your cake pans. Line the bottoms with parchment paper so the cakes release easily. This step saves time and frustration later.
Whisk the flour, baking powder, and salt together in a bowl. Mixing them first ensures the leavening is evenly distributed. This gives you a consistent rise in every layer.
Beat the butter and orange zest until smooth and fragrant. Add the sugar and mix until light and fluffy. This step adds air and helps create a soft crumb.
Add eggs one at a time, mixing well after each. Stir in vanilla, then alternate adding the dry ingredients with milk and orange juice. This keeps the batter smooth and prevents overmixing.
Gently fold in the floured cranberries using a spatula. Be careful not to overmix at this stage. This keeps the berries evenly spread throughout the cake.
Divide batter evenly between pans and smooth the tops. Bake until a toothpick inserted comes out mostly clean. Let the cakes cool before removing from pans.
Beat butter and orange zest until creamy. Add cream cheese and mix until smooth. Gradually add powdered sugar and vanilla until light and fluffy.
Layer the cakes with frosting in between. Apply a thin crumb coat and chill briefly. Finish frosting and decorate with cranberries and orange slices.