Line an 8×8 square baking pan with parchment paper, leaving an overhang to easily remove the cake once baked. Preheat the oven to 350°F (180°C).
Make the streusel: Combine flour, brown sugar, granulated sugar, and cinnamon in a bowl. Cut in cold butter with a pastry cutter or your fingers until the mixture resembles coarse crumbs. Chill the streusel in the fridge while you prepare the batter (or up to 30 minutes for firmer chunks).
Whisk the dry ingredients: In a separate bowl, whisk together the flour, baking powder, baking soda, and salt. Set aside.
Cream the wet ingredients: Cream together butter, granulated sugar, oil, and vanilla until light and fluffy, around 3-4 minutes with an electric mixer. Add the eggs one at a time, mixing well after each addition, followed by the sour cream.
Combine: Gradually fold in the dry ingredients in two additions, alternating with the milk, mixing until just combined. Fold in the chocolate chips.
Spread half the batter into the prepared pan. Sprinkle half the chilled streusel evenly over the batter.
Dollop the remaining batter on top and gently spread it to cover the streusel layer. This step can be a little tricky as the batter sticks to the streusel, so dollop it all over first before spreading.
Sprinkle the remaining streusel evenly over the top and add a few extra chocolate chips if you like. Bake until the cake is golden and a toothpick inserted into the center comes out with just a few moist crumbs, around 50-60 minutes depending on your oven.
Let the cake cool in the pan for 15 minutes before lifting out and letting it cool completely on a wire rack.
Make the glaze: Whisk together the powdered sugar and vanilla, then add milk a teaspoon at a time until you reach a pourable but not runny consistency (you'll likely need around 2 teaspoons total).
Once the cake has fully cooled, drizzle the glaze over the top.