I had the same problem. My solution was to fly into Venice and then fly to Barcelona (less than 100). Then fly out of Barcelona back to the states. I choose RCL Western Med that stops in Toulon and Nice, France and then Florence, Rome and Naples with one day at sea. I also looked at NCL but they cut out a port so you have 2 days at sea. I am interested in seeing Europe not so much in the Cruise Ship.
The flights are cheap enough in Europe that we considered doing 3 days in London, 2 days in Venice and then our cruise. We decided on 5 days in London with a day trip to Paris. The Eurostar only cost $108 roundtrip. I also looked into Eurorail Italy and 3 country pass but it was more expensive and I hate packing and unpacking, which my OCD makes a requirement at every hotel. You also spent a lot of time on trains. It takes about an hour to two to get anywhere in Europe by plane.
Tip when booking your flights which I did independently -- the flight from US To Venice and then Barcelona to US. If you try to do a 3 destination booking it raise the prices substantly -- $1000 or more and the one way flight from Venice to BCN is cheap. We ended up deciding to go to London and spend a week and then onto Barcelona. The flight from LCY to BCN was 124. My roundtrip ticket to and from DFW to LHR and then BCN to DFW was $1350. The cruise line wanted $1500. I think I got a great deal! I ended up using AA.com because my friend has perks like free luggage etc and she keep making rules like no more than 1 stop. She wanted nonstop but there are not any nonstop flights from BCN to DFW.