Heat the oven and prep the pan. Preheat to 350°F (175°C). Grease a 9-inch square baking pan and line it with a parchment sling for easy removal.
Make the crumb topping. In a bowl, whisk flour, granulated sugar, brown sugar, cinnamon, and salt.
Stir in melted butter and vanilla until clumps form. Squeeze with your hands to make larger crumbs. Refrigerate while you prepare the batter.
Mix the cinnamon filling. In a small bowl, combine sugar, cinnamon, and flour.
Set aside.
Whisk the dry ingredients for the cake. In a separate bowl, whisk flour, baking powder, baking soda, and salt.
Cream the butter and sugars. In a large bowl with a hand or stand mixer, beat butter, granulated sugar, and brown sugar on medium-high for 2–3 minutes until light and fluffy. Scrape the bowl.
Add eggs and vanilla. Beat in eggs one at a time, then mix in vanilla. Scrape the bowl again.
The mixture should look smooth and creamy.
Combine the wet and dry. Mix sour cream and milk in a measuring cup. Add the dry ingredients to the butter mixture in two additions, alternating with the sour cream mixture. Start and end with dry.
Mix on low just until combined. Do not overmix.
Layer the batter and filling. Spread about half the batter into the pan. It will be thick; use an offset spatula.
Sprinkle all the cinnamon filling evenly over it. Dollop the remaining batter on top and gently spread to cover.
Add the crumb topping. Break the chilled streusel into large and small clumps and scatter evenly over the batter. Press lightly so it adheres.
Bake. Bake for 38–46 minutes, or until a toothpick inserted in the center comes out clean or with a few moist crumbs.
The top should be golden and set.
Cool. Let the cake cool in the pan on a rack for at least 30 minutes. Use the parchment to lift it out. Dust with powdered sugar if you like.
Slice and serve warm or at room temperature.