Heat the oil in a large skillet over medium heat. Add the onion and saute until softened and nearly translucent, about 5-6 minutes. Add the garlic and crushed red pepper and saute until fragrant, about a minute. Add the tomatoes and juice and use a potato masher to break them up. Sprinkle with salt. Bring to a simmer and cook, stirring occasionally, for 15 minutes, or until thickened.
Add the meatballs and stir to coat. Cover and continue to cook an additional 20-25 minutes or until meatballs are hot clear through. Stir in the fresh basil then set aside.
To prepare the sandwiches, spread the butter evenly on one side of each of the slices of bread. On the unbuttered side, layer the mozzarella cheese, meatballs and sauce, provolone cheese, then the second piece of bread, buttered side out. Repeat with remaining slices.
Heat a grill pan over medium heat. Add the sandwiches and grill until bread is golden brown and cheese is melting. Flip and grill until cheese is completely melted and the opposite side is golden. Serve hot with plenty of napkins!