Begin by preparing the streusel topping. In a small bowl, mix together the brown sugar, flour, cinnamon, and salt until the sugar is free of clumps. Using your fingertips, work in the cold butter until the mixture forms a crumbly texture. Place the streusel in the refrigerator until needed.
Preheat your oven to 375°F, positioning the rack in the center. Grease a 9-inch square baking pan with butter or a nonstick spray for easy release.
In a medium bowl, whisk together the flour, baking powder, and salt. Set this dry mixture aside for later use.
In a large mixing bowl, cream together the softened butter and granulated sugar using an electric mixer until the mixture is smooth and fluffy, which should take about 2 minutes. Beat in the eggs one at a time, ensuring each is fully incorporated before adding the next. Stir in the vanilla extract and lemon zest to enhance the flavor.
Gradually add the flour mixture to the creamed butter, alternating with the milk, mixing on low speed until just combined. Gently fold in the blueberries, being careful not to over-mix the batter.
Pour the batter into the prepared pan, spreading it out evenly. Sprinkle the chilled streusel topping over the batter in an even layer. Bake for 40 to 45 minutes, or until the edges turn golden brown and a toothpick inserted into the center comes out clean. Allow the cake to cool in the pan on a wire rack for about 20 minutes before serving.
This cake is best enjoyed fresh, on the day it’s made. However, it will stay moist for a few days if wrapped in foil and kept at room temperature. To freeze, allow the cake to cool completely, then wrap it securely in two layers of aluminum foil or plastic wrap, or place it in a heavy-duty freezer bag. The cake can be frozen for up to 3 months. To serve, thaw it overnight on the countertop.