Cook beets: Boil in lemon water for 30-35 minutes OR roast wrapped in foil at 400°F for 45-55 minutes until fork-tender. Cool, peel, and purée until smooth and thick. Measure 1 cup.
Preheat oven to 350°F (175°C). Grease and line two 9-inch (23 cm) round cake pans.
In a stand mixer, beat butter and sugar until fluffy. Add oil and beat until smooth.
Beat in eggs one at a time, then vanilla.
Mix in beet purée until evenly combined.
Add half dry mixture, then buttermilk, then remaining dry mixture. Mix gently until just combined.
Divide batter into pans. Bake 30-35 minutes, until a toothpick comes out with a few moist crumbs.
Cool cakes in pans 10 minutes, then transfer to wire racks. Cool completely.
Frosting: Beat butter until creamy. Add cream cheese and beat smooth. Add powdered sugar gradually, then vanilla. Chill if needed.
Assemble: Frost between layers, cover cake with remaining frosting, and garnish as desired.
Notes
Substitutions: Beets: Roast instead of boiling for sweeter flavor and a deeper red hue. You can also use vacuum-packed cooked beets if you’re short on time, but avoid pickled ones. Flour + cornstarch: Swap both for 2 1/2 cups (300 g) cake flour if you have it on hand.
Storage: Store covered in the fridge up to 4 days. Freeze unfrosted layers for up to 2 months.
Reheat: Not needed. Let chilled slices sit at room temperature before serving.