Preheat the oven to 375°F.
Lay the flank steak flat on a cutting board and pound it to an even thickness using a meat mallet.
In a medium bowl, combine the chopped spinach, ricotta cheese, mozzarella cheese, Parmesan cheese, minced garlic, oregano, basil, salt, and pepper. Mix until well combined.
Spread the cheese and spinach mixture evenly over the flank steak, leaving a small border around the edges.
Roll the steak tightly from one end to the other, securing the filling inside. Use kitchen twine to tie the rolled steak at 1-inch intervals.
In a large oven-safe skillet, heat the olive oil over medium-high heat. Sear the stuffed flank steak for about 3-4 minutes on each side until browned.
Drizzle the balsamic vinegar over the steak, then transfer the skillet to the preheated oven.
Bake for 20-25 minutes or until the steak reaches an internal temperature of 145°F for medium-rare.
Remove the skillet from the oven and let the steak rest for 5-10 minutes before slicing.
Garnish with fresh basil leaves if desired.