first off how many miles has it got on it, if over 60.000 miles and not had a timing chain replaced this needs checking first job, ie timing chains stretch on these engines and must be treated like a service wearable item or it ruins your day not a if its a when,
when chain stretches the timing is h=out makes them run retarded and also bi-product of this fault causes unburnt fuel and air mix that escapes the over lap of the valves and over heats the 02 sensor upstream mainly it also destroys the cat element..
other things that can cause this is using a lot of oil ie piston rings or valve stem seals also a bi product of being driven for a long time with out of time engine the retarded running causes heat build up with in the cylinders,
trouble is most people wrongly think the timing chain is for ever where the car makers let people think this while the fact is its not. a lot of car makers are putting a 100k or 150k mileage service replace time on them.. this all said it needs to be checked correctly.