Preheat the oven to 350 degrees F (175 degrees C).
Bring a large pot of lightly salted water to a boil. Add ziti and cook, stirring occasionally, until tender yet firm to the bite, about 8 minutes. Drain and set aside.
Meanwhile, heat a large skillet over medium heat. Cook and stir ground beef, onion, and 1/2 of the garlic in the hot skillet until beef is until browned and onion is wilted, 5 to 7 minutes. Add spaghetti sauce and simmer for 15 minutes.
While the meat sauce is simmering, heat oil in a skillet over medium heat. Add remaining garlic and cook until fragrant, about 1 minute. Add spinach and cook, tossing occasionally, until wilted, about 2 minutes. Remove from the heat.
Mix ricotta cheese, 1/4 cup Parmesan cheese, and wilted spinach in a bowl. Season with salt.
Place 1/2 of the ziti in the bottom of a 9x13-inch baking dish and layer with 1/2 of the meat sauce. Spread provolone cheese on top to form a flat surface. Spread spinach mixture over top, then cover with remaining ziti and meat sauce. Top with 2 tablespoons Parmesan and sprinkle mozzarella over top.
Bake in the preheated oven for 30 minutes. Remove from the oven and let firm up for at least 10 minutes before serving.