Preheat the oven to 350°F (177°C) and grease a 10-inch Bundt pan.
In a large bowl, whisk the flour, baking powder, and salt together. Set aside. Using a mixer, beat the butter, brown sugar, granulated sugar, and orange zest together until creamed, about 3 minutes.
Add the eggs, sour cream, and vanilla and beat on medium speed until combined. Scrape down the sides and bottom of the bowl as needed.
Pour the dry ingredients into the wet ingredients, add the milk and fresh orange juice, and beat on medium speed until the batter is completely combined. Stir in cranberries.
In a small bowl, mix the brown sugar and cinnamon together.
Pour half of the cake batter evenly into the prepared Bundt pan. Sprinkle the swirl ingredients evenly on top, avoiding the edges. Cover evenly with remaining cake batter.
Bake for 55-70 minutes or until a toothpick comes out clean.
Allow to cool for 1 hour in the pan, then invert onto a wire rack or serving dish to cool completely.
Whisk confectioners’ sugar and 3 tablespoons of orange juice together for the icing.
Cover leftover cake tightly and store at room temperature for up to 2 days or in the refrigerator for up to 1 week.