Preheat oven to 350 degrees. Grease 2 9 inch cake pans with butter or oil and line the bottom of each with a circle of parchment paper.
In a large bowl, cream the butter and sugar until fluffy, about 3-4 minutes. Beat in the eggs, one at a time, until fully incorporated. Whip in the vanilla and Greek yogurt. Add the flour, baking powder, baking soda, and salt. With the mixer running, slowly stream in 1 1/3 cups of the buttermilk. Do not overmix.
Scoop 1 cup of the batter into a separate bowl. Whisk in the cocoa powder and additional 2 tablespoons of buttermilk.
Divide half of the vanilla batter into the two cake pans. Dollop half of the chocolate butter atop and swirl with a butter knife or skewer. Do not mix too much, you want visible streaks. Pour the rest of the vanilla batter between the two pans, and repeat the swirling with the remaining chocolate batter.
Bake 30-35 minutes until the center is set and an inserted toothpick emerges with just a few moist crumbs. Let cool in the pans for 10 minutes, then run a knife around the edges to release the layers and flip onto a wire rack. Cool completely.
When the cakes are cooled, make the frosting. In a bowl, whip the butter, vanilla, and cocoa powder on low speed until combined. Add in 4 cups of powdered sugar and 1/4 cup cream and mix to combine, then increase the speed to medium high and whip until very light and fluffy. If needed, pour in more sugar 1 tablespoon at a time until the frosting is soft and spreadable.
Place a cake stand atop a very large piece of parchment paper. Set one cake layer on the stand. Frost the top generously, then add the second layer. Frost all the way around the cake until completely covered. Pipe any extra frosting on top to create a pretty finish!