Cross-domain canonical is the most viable option here. As Mike and Chris said, it is possible for Google to ignore the tag in some cases, but it's a fairly strong suggestion. There are two main reasons I'd recommend it:
(1) Syndicated content is the entire reason Google allowed the use of rel=canonical across domains. SEOs I know at large publishers have used it very effectively. While your situation may not be entirely the same, it sounds similar to a syndicated content scenario.
(2) It's really your only viable option. While a 301-redirect is almost always honored by Google, as Chris suggested, it's also very different. A 301 will take the visitors on the partner site page directly to your page, and that's not your intent. Rel=canonical will leave visitors on the partner page, but tell search engines to credit that page to the source. Google experimented with a content syndication tag, but that tag's been deprecated, so in most cases rel=canonical is the best choice we have left.