Your description indicates a fuel issue. Perhaps the fuel tank is not breathing. Might try loosening the cap and see if it runs longer.
Did this condition just start out of the blue, or have you done some service, like change filters, and then have troubles?