Make the streusel topping: In a small bowl, combine the brown sugar, flour, cinnamon, and salt. Use your fingers to mix until the brown sugar is fully broken up with no clumps remaining. Add the cold butter and rub it into the dry ingredients with your fingertips until the mixture forms coarse crumbs. Place the streusel in the refrigerator while you prepare the cake batter.
Preheat the oven to 375°F and position a rack in the center of the oven. Lightly grease a 9-inch square baking pan with butter or nonstick spray.
In a medium bowl, whisk together the flour, baking powder, and salt, then set aside.
In the bowl of a stand mixer or using a handheld electric mixer, cream the butter and granulated sugar together until light and creamy, about 2 minutes. Add the eggs one at a time, beating well after each and scraping down the sides of the bowl as needed. Mix in the vanilla extract and lemon zest.
On low speed, add the flour mixture in batches, alternating with the milk, starting and ending with the dry ingredients. Mix just until everything is incorporated—do not overbeat. Gently fold in the blueberries using a spatula, stirring just until they are evenly dispersed throughout the batter.
Pour the batter into the prepared baking pan and spread it into an even layer. Evenly sprinkle the chilled streusel topping over the surface of the batter. Bake for 40 to 45 minutes, or until the cake is golden brown around the edges and a toothpick inserted in the center comes out clean.
Allow the cake to cool in the pan on a wire rack for about 20 minutes before serving. You can serve it directly from the pan.
This cake is best enjoyed the same day it is baked, while the topping is still crisp. Any leftovers can be wrapped in foil and stored at room temperature for a few days.
Freezer-Friendly Instructions: The cake can be frozen for up to 3 months. Once fully cooled, wrap it tightly in two layers of aluminum foil or plastic wrap, or seal it in a heavy-duty freezer bag. To serve, thaw it overnight on the countertop.