We develop a simple model of international trade with heterogeneous firms that is consistent with a number of stylized features of the data. In particular, the model predicts positive as well as zero trade flows across pairs of countries, and it allows the number of exporting firms to vary across destination countries. As a result, the impact of trade frictions on trade flows can be decomposed into the intensive and extensive margins, where the former refers to the trade volume per exporter and the latter refers to the number of exporters. This model yields a generalized gravity equation that accounts for the self-selection of firms into export markets and their impact on trade volumes. We then develop a two-stage estimation procedure that uses an equation for selection into trade partners in the first stage and a trade flow equation in the second. We implement this procedure parametrically, semiparametrically, and nonparametrically, showing that in all three cases the estimated effects of trade frictions are similar. Importantly, our method provides estimates of the intensive and extensive margins of trade. We show that traditional estimates are biased and that most of the bias is due not to selection but rather due to the omission of the extensive margin. Moreover, the effect of the number of exporting firms varies across country pairs according to their characteristics. This variation is large and particularly so for trade between developed and less developed countries and between pairs of less developed countries.