Flaherty allows no runs in three innings as Cardinals lose to Red Sox