The only argument you could possibly make against Bonds is the difference in games played. But even that's somewhat flawed.
Others can do a far more precise analysis of this, I'm sure, but here's what happened when I played around a little.
Bonds has played 103 games, averaging 4.20 PA/G
He's missed 21 games, so that would be 88 PA.
Bonds has a 1.269 OPS. (OBP+Slug.%)
Pujols has a 1.128 OPS.
Now, if we add in 88 PA to Bonds' total (the PA that have gone to other players in Bonds' absense) those 88 PA have to be at .433 OPS to reduce Bonds' "modified" OPS to below Pujols' total.
That is, Bonds' 433 PA @ 1.269 OPS + 88 PA @ .433 OPS = 1.127 OPS.
Marvin Bernard has gotten much of the PT when Bonds doesn't play. Bernard has been bad, as evidenced by his .488 OPS. Ruben Rivera's has been .595.
So, as bad as Bonds' replacements have been, Bonds + Replacements look like they still are hitting better than Pujols. And that doesn't even consider the difference in their home fields, or the offensive players around them.