Best way to compare two treatment groups to a control I'm trying to compare two different fertilizer treatments to a control group (no fertilizer). I ran a model like this:
plants_lm <- lm(weight ~ group, data = plants)

summary(plants_lm)

Call:
lm(formula = weight ~ group, data = plants)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.0710 -0.4180 -0.0060  0.2627  1.3690 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)        5.0320     0.1971  25.527   <2e-16 ***
groupFertlizer_A  -0.3710     0.2788  -1.331   0.1944    
groupFertlizer_B   0.4940     0.2788   1.772   0.0877 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.6234 on 27 degrees of freedom
Multiple R-squared:  0.2641,    Adjusted R-squared:  0.2096 
F-statistic: 4.846 on 2 and 27 DF,  p-value: 0.01591

I'm a little confused as to how to interpret these results. The only significant result is the control. What does this mean exactly? I feel like I'm doing something wrong, because what I want to know is whether the other two groups are different from the control. Hope this makes some sense.

Your variable group is a factor with three levels, control, Fertilizer_A, Fertilizer_B, and control is used as reference )or baseline) level, so its implied coefficient is zero. See What to do in a multinomial logistic regression when all levels of DV are of interest?.
The coefficients for the two non-reference levels, Fertilizer_A and  Fertilizer_B represent in fact contrast comparing those levels to the control.  You say:

The only significant result is the control.

and I do not understand what you come to that conclusion. The last line in your output
F-statistic: 4.846 on 2 and 27 DF,  p-value: 0.01591

represent a comparison between your model and the intercept-only model, which is the null hypothesis model representing the null that the fertilizer treatment has no effect. That hypothesis test has the p-value
0.01591, which is often considered significant, for instance, at the conventional 5% level you can reject the null that the fertilizer treatment has no effect.
Edit
The two individual p-values in the output table each test two separate contrasts, comparing A with control and comparing B with control. That neither of those are significant at the conventional 5% level, while the overall test is significant, only says that we have some information to say that fertilizer use is different from control, but not sufficient information to say which fertilizer is different from control. This might be  seen as a paradox, but is not: An equivalent example is that police might be able to prove that either A or B murdered the victim, but not enough to say which of them.
In this case, from the point estimates, A seems worse than control while B seems better.  Detailed interpretation will depend on knowledge of the fertilizers used etc, but might also indicate need of further replicate experiments to give a better conclusion. Note that the conclusion from the overall test (which is two-sided) only is that fertilizer id different from control, not better than.
As for comparing the two treatments, that is also a contrast, and all contrasts can be tested. In the following I will abbreviate the levels with A, B, C. The two printed contrasts are A-C and B-C, note that we can write A-B as A-C - (B-C), so from the output you can find the point estimate as  A-C = -0.3710 - 0.4940, but to calculate the t-test you also need then standard error, which you need further information from. But you can calculate it yourself using the covariance matrix of the coefficient vector, which you get by the call vcov(plants_lm), or you can use use a function like car::linearHypothesis to do it.  For another way see the code at Categorical variable coding to compare all levels to all levels
