Preheat the oven to 350°F (175°C) and line a cupcake pan with paper liners.
In a bowl, whisk together all-purpose flour, baking powder, and salt.
In another bowl, beat softened butter and granulated sugar until light and fluffy.
Add eggs one at a time, then mix in vanilla extract.
Alternately add the dry ingredients and milk to the butter mixture, mixing until smooth.
Gently fold in the blueberries.
Fill cupcake liners about three-quarters full and bake for 18 to 22 minutes until a toothpick comes out clean.
Allow cupcakes to cool completely.
For the frosting, beat softened butter until creamy.
Gradually add powdered sugar and mix well.
Add blueberry puree and vanilla extract, then beat until smooth and fluffy.
Add heavy cream if needed to reach a pipeable consistency.
Pipe or spread frosting onto cooled cupcakes and top with fresh blueberries.