We present a new approach to Poincaré duality for Cuntz-Pimsner algebras. We provide sufficient conditions under which Poincaré self-duality for the coefficient algebra of a Hilbert bimodule lifts to Poincaré self-duality for the associated Cuntz-Pimsner algebra.With these conditions in hand, we can constructively produce fundamental classes in Ktheory for a wide range of examples. We can also produce K-homology fundamental classes for the important examples of Cuntz-Krieger algebras (following Kaminker-Putnam) and crossed products of manifolds by isometries, and their non-commutative analogues.A (ē |f ) = (e | f ) A . We call E with this structure the conjugate module of E. Given a C * -algebra A, we write ℓ 2 (A) for the standard C * -module If M is compact, then ∆ is a K-homology fundamental class for C 0 (M θ ) ⋊ α Z. In particular,