Short answer Yes.
The difference between the two as clearly pointed by this article:
301 – Hey, Search Engines: My page is no longer here, and has permanently moved to a new page. Please remove it from your index and
pass credit to the new page.
Canonical – Hey, (most) Search Engines: I have multiple versions of this page (or content), please only index this version. I'll keep
the others available for people to see, but don't include them in your
index and please pass credit to my preferred page.
Regarding the amount of PageRank or link juice that would be lost from
canonical redirects, Cutts has also said "there's really not a whole
lot of difference" between the 301 and the canonical. This means the
301 and the canonical will lose "just a tiny little bit, not very much
at all" of credit from the referring page.
In either case (301 or Canonical) between 90-99% of link juice (ranking power) is passed to the redirected page.
At SEO advice: url canonicalization Matt Cutts says that
Suppose you want your default url to be http://www.example.com/ . You can make your webserver so that if someone requests http://example.com/, it does a 301 (permanent) redirect to http://www.example.com/ . That helps Google know which url you prefer to be canonical. Adding a 301 redirect can be an especially good idea if your site changes often (e.g. dynamic content, a blog, etc.).
An article on juice and PR