A high-level analogy:
Portlet Container Desktop Windowing System
==========================================================
Portlet Window
JSF Widget Framework
JSF tag Widget
The portlet provides an API that allows a application to receive and respond to requests from the container. It does not specify what you use to render your portlet views or how the application organizes its data. In this, a portlet is similar to a servlet.
JSF provides a means for specifying views, navigating between them, and interacting with a model layer.
A specialized portlet acts as a JSF controller/container - typically a portlet bridge.