Preheat oven to 350°F (175°C). Grease three 8-inch round cake pans and line the bottoms with parchment paper circles. Lightly flour the sides.
In a large mixing bowl, whisk together the flour, sugar, cocoa powder, baking soda, baking powder, and salt until no lumps remain and the mixture is evenly combined.
Add the eggs, coffee, milk, oil, sour cream, and vanilla extract to the dry ingredients. Beat with an electric mixer on medium speed for 2 minutes until the batter is smooth and slightly glossy. The batter will be quite thin.
Divide the batter evenly among the three prepared pans, using about 2 cups of batter per pan. Tap the pans gently on the counter to release any air bubbles.
Bake for 28 to 32 minutes, until a toothpick inserted in the center comes out with just a few moist crumbs attached. The tops should spring back lightly when touched.
Cool the cakes in their pans on wire racks for 15 minutes, then carefully turn them out onto the racks and peel off the parchment paper. Let cool completely before frosting, at least 1 hour.
For the frosting, beat the softened butter in a large bowl with an electric mixer on medium-high speed until creamy and pale, about 2 minutes.
Add the powdered sugar and cocoa powder in three additions, beating on low speed after each addition until combined. Scrape down the sides of the bowl as needed.
Pour in the heavy cream and vanilla, then beat on high speed for 3 minutes until the frosting is light, fluffy, and spreadable. If it's too thick, add more cream one tablespoon at a time.
Place the first cake layer on a serving plate and spread with about 3/4 cup of frosting. Top with the second layer, frost it, then add the third layer. Apply a thin crumb coat over the entire cake, then refrigerate for 20 minutes before applying the final generous layer of frosting. Smooth with an offset spatula or create decorative swirls.