Heat the oven to 350°F and butter a 9-inch square baking pan.
Whisk 2 cups flour, baking powder and salt; beat the softened butter and granulated sugar in another bowl, then beat in the eggs one at a time and add vanilla.
Mix in the dry ingredients alternating with the buttermilk, fold in the peaches and spread the batter in the pan.
Rub the remaining flour, brown sugar, cinnamon and cold butter into uneven crumbs.
Scatter the crumbs across the batter.
Bake for 45 to 50 minutes until the center is set and the top springs back; cool at least 30 minutes before cutting.